連載
» 2007年10月05日 00時00分 公開

デスクトップをJava製ウィジェットでにぎやかに小山博史のJavaを楽しむ(8)(3/3 ページ)

[小山博史,ガリレオ]
前のページへ 1|2|3       

作ったサンプルをウィジェットとして実行する

 これをDeskletへ組み込むに当たり、DeskletFactoryクラスを用意して、関連するパーツを一式作成してDeskletへ登録するようにしました。

 desklet.getContext().getDockingContainer()で取得できるコンテナへ登録したパーツは、ExitメニューやSetupメニューがあるドック領域に表示されます。desklet.getContext().getContainer()で取得できるコンテナへ登録したパーツは、ドックの右側の普段は隠れているコンテナに表示されます。

package sampleclock;

import org.glossitope.desklet.DeskletContainer;

public class DeskletFactory {
    public static Clock createClock(Desklet desklet) {
        Clock clock = new Clock();
        DigitalClockByJLabel dcl = new DigitalClockByJLabel();
        DigitalClockByJComponent dcc
            = new DigitalClockByJComponent();
        clock.addObserver(dcl);
        clock.addObserver(dcc);

        DeskletContainer dock
            = desklet.getContext().getDockingContainer();
        dock.setContent(dcl);

        DeskletContainer c
            = desklet.getContext().getContainer();
        c.setContent(dcc);
        c.setShaped(true);
        c.setBackgroundDraggable(true);
        c.setResizable(true);
        c.setVisible(true);

        return clock;
    }
}

 最後に、META-INFディレクトリへdesklet.xmlを作成します。ローカルで実行するのに最低限必要な情報を書いておきました。

<?xml version="1.0" encoding="UTF-8"?>
    <desklet version="0.1">
    <name>Sample Clock Desklet</name>
    <author>Hiroshi Koyama</author>
    <homepage>http://www.sssg.org</homepage>
    <description>Sample Clock</description>
    <class>sampleclock.Desklet</class>
</desklet>

 一通りのファイルが用意できたので、プロジェクトのプロパティで実行時の主クラスを「sampleclock.Desklet」と指定してからプロジェクトの構築をしました。出来上がったJARファイルを次のように実行して動作することを確認しました。

以下のコマンドを実行
>java -jar SampleClock.jar

 その後、Deskletを登録したところ、無事に次のように画面が表示されて、時計が動作しました。

図10 作ったサンプルをウィジェットとして実行 図10 作ったサンプルをウィジェットとして実行

 今回の例は、単純なアプリケーションですが、パーツを切り替えればほかのいろいろなアプリケーションへ変更することは難しくありません。

Java製デスクトップ・ウィジェットの利点

 資料は少ないのですが、Swingアプリケーションの知識があれば、これまで説明した内容から、すぐにDeskletを作ることができるはずです。また、最新のJava GUI技術であるJavaFXSWT(The Standard Widget Kit)、Eclipse RCP(Rich Client Platform)など、JVMで動くものはDeskletとして動かすことができるようなので、いろいろ試せそうです。

 Windowsのアプリケーションと連携するには、VBやC#を使ってアプリケーションを作成するのが簡単そうですが、インターネットのサービスと連携するようなアプリケーションを作成するには、Javaの方が簡単です。

 また、このDeskletプラットフォームを使えば、OSとは別にアプリケーションを管理できるようになるため、意外と重宝するはずです。Deskletは意外と簡単に作れますから、チャレンジしてみてはいかがでしょう。

 なお、今回作ったサンプルのソースコードはこちらからダウンロードできます。

@IT関連リンク

SwingでJavaに強くなる
JavaはサーブレットやJSPだけじゃない!Eclipseを使ってSwingを学ぶことで、Javaの基本、GUIアプリケーションの基本スキルを高めよう
第1回 SwingのキホンJFrameを使う (2006/5/31)
第2回 JFrameにコンポーネントを配置する (2006/6/24)
第3回 テキストフィールドの実現 (2006/7/15)
第4回 Swingのイベント処理を知る (2006/8/19)
第5回 JListを使いSwingの仕組みを理解する (2006/9/16)
第6回 Swingの仕組みを理解する (2006/9/23)
連載各回の解説はこちら

JavaFXでJava RIA開発はどれくらい変わるの?
小山博史のJavaを楽しむ(6) 2007年のJavaOneで発表されてから、がぜん注目を浴びているJavaFX。その使いどころについてサンプルやデモを交えながら解説します
Java Solution」フォーラム 2007/6/13

EclipseによるSWTアプリケーションの作成
Eclipse徹底活用(7) 高速なGUIが実現できることで評価の高いSWTを使いアプリケーションを作成してみよう。CSVビューワーを例に、スレッド対応までを試みる
Java Solution」フォーラム 2004/2/21

米持先進技術工房−@IT分室
テクノロジー・エバンジェリスト 米持氏がJ2EEの最新技術情報を提供。先端技術をいち早くキャッチアップしたい読者のためのコーナー
第2回 EclipseのVEでSWTアプリを作る(前編) (2005/11/7)
第3回 EclipseのVEでSWTアプリを作る(後編) (2005/12/28)
第4回 SWTのパネルにボタン処理を追加するには (2006/2/4)
第5回 EclipseのJVEで扱えるSWT部品を作る (2006/4/6)
第6回 SWTのレイアウトを活用しよう (2006/6/1)
第7回 SWTでレイアウトを使わずに部品を配置するには (2006/11/9)
第8回 FillLayoutでSWTの部品を均一に配置しよう (2006/12/6)
第9回 SWTのレイアウトはRowLayoutで右へ倣え! (2007/1/11)
第10回 SWTで最も自由にレイアウトできるのは何か? (2007/2/3)
第11回 JVEで編集できないレイアウトを2つ紹介 (2007/4/25)
連載各回の解説はこちら

Eclipse 3.0のリッチクライアントとは?
[コラム]安藤幸央のランダウン(26) Eclipse 3.0にはリッチなユーザーインターフェイスを容易に構築できる機能が追加された。その実力を実例に見てみよう
Java Solution」フォーラム 2005/1/15

Yahoo WidgetやGoogle GadgetにみるCGUIの萌芽
変貌するリッチクライアント(1) ユーザーによるUI生成、CGUI。命名者であるNRIが、サービスの供給側によるWeb API公開とユーザーがUIを生成することの意義と兆候を分析
リッチクライアント & 帳票」フォーラム 2006/6/9

Apollo参戦でウィジェット開発者の争奪戦が激化
Ajax うきうき Watch(19) 似て非なるウィジェット開発のテクノロジ。互換性がないYahoo!ウィジェット、WPFに、Adobe Apolloの参戦で開発者の争奪戦がいよいよ始まる
リッチクライアント & 帳票」フォーラム 2007/3/26

筆者プロフィール

小山博史(こやま ひろし)

Webシステムの運用と開発、コンピュータと教育の研究に従事する傍ら、オープンソースソフトウェア、Java技術の普及のための活動を行っている。Ja-Jakartaプロジェクトへ参加し、コミッタの一員として活動を支えている。また、長野県の地域コミュニティである、SSS(G)bugs(J)の活動へも参加している。



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。