2

ユーザーが Mac OS (10.6 - Snow Leopard) の java.awt.FileDialog でキャンセル ボタンまたはルート ディスクを選択したかどうかを検出する方法を誰かが知っていますか????

私は以下のコードを持っています:

System.setProperty("apple.awt.fileDialogForDirectories", "true"); 
FileDialog fd = new FileDialog(this);  
fd.setDirectory(_projectsBaseDir.getPath());  
fd.setLocation(50,50); fd.setVisible(true);  
File selectedFile = new File(fd.getFile()); 
System.setProperty("apple.awt.fileDialogForDirectories", "false");

しかし、ユーザーが左側のパネル ([デバイス] の下) でプライマリ ディスクを選択すると、選択は null を返します。ユーザーがプライマリ ディスクを選択したか、キャンセル ボタンを押したかを区別できません。(どちらのアクションも null を返します)。

4

1 に答える 1

0

Swing を使用できる場合は、JFileChooser を使用することを強くお勧めします。次に、コードは次のようになります。

JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(_projectsBaseDir.getPath());
fc.setLocation(50,50);
int ret = fc.showOpenDialog(this); // Use .showSaveDialog(this) for save dialog
if(ret == JFileChooser.APPROVE_OPTION)
    File selectedFile = fc.getSelectedFile();

お役に立てれば。

于 2011-12-01T21:40:47.637 に答える