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(); } } } }