Component -1:N 対応 Case 1 -
ここではコンポーネントを提供するクラスのなかで,Swing と SWT が 1:N Case 1 に対応するクラスについて,Swing から SWT への変換方法を説明します.1:N Case 1 に対応するクラスとは,Swing の1つのクラスの機能が,SWT ではN個に分かれているクラスです.
1:N 対応 Case 1 クラス
1:N 対応 Case 1 に分類されるクラスは次の表の通りです.
機能 | Swing | SWT |
---|---|---|
ファイルダイアログ | JFileChooser | FileDialog |
ディレクトリダイアログ | DirectoryDialog |
Swing
Swing ではファイルダイアログ,ディレクトリダイアログとも JFileChooser クラスによって実現できます.JFileChooser クラスには,ダイアログの種類を指定する setFileSelectionMode() メソッドがあります.
public void setFileSelectionMode(int mode)mode には,次の3つの JFileChooser クラスの定数が指定できます.
- FILES_ONLY
- ファイルのみ選択可能なダイアログです.
- DIRECTORIES_ONLY
- ディレクトリのみ選択可能なダイアログです.
- FILES_AND_DIRECTORIES
- ファイルとディレクトリの両方を選択可能なダイアログです.
ダイアログを表示するメソッドは,次の3つがあります.
- showOpenDialog(Component parent)
- 「開く」ボタンの付いたダイアログを表示します.parent には,そのダイアログの親となるコンポーネントを指定します.
- showSaveDialog(Component parent)
- 「保存」ボタンの付いたダイアログを表示します.parent には,そのダイアログの親となるコンポーネントを指定します.
- showDialog(Component parent, String approveButtonText)
- 任意の文字列が表示されたボタンの付いたダイアログを表示します.parent にはそのダイアログの親となるコンポーネント,approveButtonText にはボタンのテキストを指定します.
従って,Swing では次のように「開く」ボタンの付いたファイルダイアログを表示できます.
JFileChooser fileDialog = new JFileChooser();
fileDialog.setFileSelectionMode(JFileChooser.FILES_ONLY);
file.showOpenDialog(panel);
SWT
SWT では,ファイルダイアログは FileDialog クラス,ディレクトリダイアログは DirectoryDialog クラスによって実現できます.FileDialog クラス,DirectoryDialog クラスのコンストラクタは次のようになっています.- public FileDialog(Shell parent)
- ファイルダイアログを生成します.parent には親となるフレームを指定します.
- public FileDialog(Shell parent, int style)
- style で指定して種類のファイルダイアログを生成します.style には次の3つの定数が指定できます.
- SWT.OPEN
- 「開く」ボタンの付いたファイルダイアログです.
- SWT.SAVE
- 「保存」ボタンの付いたファイルダイアログです.
- SWT.MULTI
- 複数のファイルを選択可能なファイルダイアログです.
- style で指定して種類のファイルダイアログを生成します.style には次の3つの定数が指定できます.
- public DirectoryDialog(Shell parent)
- ディレクトリダイアログを生成します.parent には親となるフレームを指定します.
ダイアログを表示するには,open() メソッドを使用します.従って,SWT では次のように「開く」ボタンの付いたファイルダイアログを表示出来ます.
FileDialog fileDialog = new FileDialog(panel, SWT.OPEN);
fileDialog.open();
Swing ⇒ SWT
1:N 対応 Case 1 に分類されるクラスは,次のように Swing から SWT へ変換できます.
// Swing JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fileChooser.showOpenDialog(frame);------------->
// SWT DirectoryDialog fileChooser = new DirectoryDialog(frame); fileChooser.open();