Jef*_*rey 17 java swing jfilechooser
我觉得应该有一个简单的方法来做到这一点,但我无法弄清楚.我有一个允许用户选择目录的JFileChooser.我想显示目录中的所有文件以向用户提供一些上下文,但只有目录应被接受作为选择(可能在选择文件时禁用"打开"按钮).有这么简单的方法吗?
abl*_*eul 17
我的解决方案是camickr和trashgod的答案之间的合并:
final JFileChooser chooser = new JFileChooser() {
public void approveSelection() {
if (getSelectedFile().isFile()) {
return;
} else
super.approveSelection();
}
};
chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
Run Code Online (Sandbox Code Playgroud)
cam*_*ckr 13
覆盖approveSelection()方法.就像是:
JFileChooser chooser = new JFileChooser( new File(".") )
{
public void approveSelection()
{
if (getSelectedFile().isFile())
{
// beep
return;
}
else
super.approveSelection();
}
};
Run Code Online (Sandbox Code Playgroud)
tra*_*god 13
见setFileSelectionMode()
在如何使用文件挑肥拣瘦:
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)
Run Code Online (Sandbox Code Playgroud)
附录:通过取消注释第73行可以看出效果FileChooserDemo
,但它似乎与平台有关.
附录:如果使用FILES_AND_DIRECTORIES
,请考虑相应地更改按钮文本:
chooser.setApproveButtonText("Choose directory");
Run Code Online (Sandbox Code Playgroud)
由于效果取决于L&F,请考虑DIRECTORIES_ONLY
在已满足您的UI要求的平台上使用:
if (System.getProperty("os.name").startsWith("Mac OS X")) {
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
} else {
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22627 次 |
最近记录: |