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 回答