SwingのJFileChooserの代わりにSWTのFileDialogを使う方法

○JFileChooserの起動遅延バグ

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6372808


JFileChooserの初期起動が遅いのでそこだけSWTのFileDialogを使うことにした。

public class SWTSwing {
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.setSize(300, 300);
		Container cp = frame.getContentPane();
		Canvas canvas = new Canvas();
		cp.add(canvas, BorderLayout.CENTER);
		frame.setVisible(true);

		Display display = new Display();
		final Shell shell = SWT_AWT.new_Shell(display, canvas);
		shell.setLayout(new FillLayout());

		Button button = new Button(shell, SWT.PUSH);
		button.setText("参照");
		button.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				// 読み込み用ダイアログを開く
				//FileDialog openDialog = new FileDialog(shell, SWT.OPEN);
				//String path = openDialog.open();
				 DirectoryDialog dialog = new DirectoryDialog(shell);
				 String path = dialog.open();

				MessageBox mesBox = new MessageBox(shell);
				mesBox.setMessage(path);
				mesBox.open();

			}
		});

		shell.pack();

		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}

	}
}