パーソナルツール
現在の場所: ホーム SwingとSWT チュートリアル コンポーネント編 Component - 1:N 対応 Case 1 -
文書操作

Component -1:N 対応 Case 1 -

作成者 fujisaki 最終変更日時 2008年12月09日 01時04分

ここではコンポーネントを提供するクラスのなかで,Swing と SWT が 1:N Case 1 に対応するクラスについて,Swing から SWT への変換方法を説明します.1:N Case 1 に対応するクラスとは,Swing の1つのクラスの機能が,SWT ではN個に分かれているクラスです.

1:N 対応 Case 1 クラス

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
      複数のファイルを選択可能なファイルダイアログです.
  • 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();