SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Javaで軽快に使える「軽量フレームワーク」特集

Javaで軽快に使える「軽量フレームワーク」特集
~アプレットベースのRIAフレームワーク「Apache Pivot」(3)

第15回

カラーチューザーの表示

 色を選択するためのGUIとして一般に用いられるのが、カラーピッカーあるいはカラーチューザーと呼ばれるGUIです。これは「ColorChooser」として用意されています。選択された色は、「selectedColor」というプロパティに、java.awt.Colorインスタンスとして保管されます。

 チューザーをマウスでクリックし色を選択すると、ColorChooserSelectionというイベントが発生します。このイベントで呼び出されるリスナーは、「getColorChooserSelectionListeners」というメソッドで取得されるListenerListで管理されます。

 イベントリスナーであるselectedColorChangedでは「selectedColorChanged」というメソッドが用意されており、イベントが発生するとこれが呼び出されます。引数にはイベントが発生したColorChooserと、それまで選択されていたColorが渡されます。カラーチューザーで色を選択すると、その色の上方を表示する簡単なサンプルコードを以下に掲載します。

ColorChooser color1 = (ColorChooser)serializer.get("color1");
color1.getColorChooserSelectionListeners().
    add(new ColorChooserSelectionListener() {
    @Override
    public void selectedColorChanged(ColorChooser chooser, Color color) {
        Color c = chooser.getSelectedColor();
        Prompt.prompt(c.toString(), window);
    }
});
図5 色をクリックすると、画面に色の情報が表示される。
図5 色をクリックすると、画面に色の情報が表示される。

ファイルチューザーの利用

 ファイルの選択を行うのに用いられるのが、ファイルダイアログあるいはファイルチューザーと呼ばれるGUIです。Pivotでは「FileBrowserSheet」として用意されています。アプリケーションとして実行する場合、このFileBrowserSheetを利用してローカルボリュームのファイルにアクセスすることができます。

 FileBrowserSheetは、カレンダーやカラーチューザーのように、画面に貼りつけて表示させておくものではありません。必要に応じてインスタンスを作成し、「open」メソッドで画面に表示させて利用します。

 このFileBrowserSheetは、モーダルダイアログではなく、open後も処理はそのまま実行されます。ファイルを選択したときの処理は、ウインドウを閉じるときのイベントSheetCloseに設定されたイベントリスナー「SheetCloseListener」によって処理されます。このリスナーには「sheetClosed」というメソッドが用意されており、ファイルを選択したりキャンセルしたりしてウインドウが閉じられると呼び出されます。

 FileBrowserSheetでは、「getSelectedFile」メソッドにより、選択したファイルがFileインスタンスとして取得されます。では、簡単なサンプルコードを挙げておきましょう。ボタンをクリックするとファイルチューザーを開き、選択したファイルのパスを画面に表示します。

PushButton button1 = (PushButton) serializer.get("button1");
button1.getButtonPressListeners().add(new ButtonPressListener() {
    @Override
    public void buttonPressed(Button arg0) {
        FileBrowserSheet filesheet = new FileBrowserSheet(FileBrowserSheet.Mode.OPEN);
        filesheet.open(window, new SheetCloseListener() {
            @Override
            public void sheetClosed(Sheet sheet){
                FileBrowserSheet fsheet = (FileBrowserSheet)sheet;
                if (sheet.getResult()) {
                    File file = fsheet.getSelectedFile();
                    Prompt.prompt(file.getAbsolutePath(), window);
                } else {
                    Prompt.prompt("Can't open.", window);
                }
            }
        });
    }
});
図6 ファイルチューザーでファイルを選択すると、そのパスが表示される。
図6 ファイルチューザーでファイルを選択すると、そのパスが表示される。

次のページ
タブパネル

この記事は参考になりましたか?

Javaで軽快に使える「軽量フレームワーク」特集連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5113 2010/05/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー