カラーチューザーの表示
色を選択するための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);
}
});

ファイルチューザーの利用
ファイルの選択を行うのに用いられるのが、ファイルダイアログあるいはファイルチューザーと呼ばれる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);
}
}
});
}
});

