当我双击一个目录时,JFileChooser没有打开该目录,即它没有浏览它,但它选择了目录并返回。
我如何实现JFileChooser,以便在双击时显示文件夹的内容?
如果设置了 setFileSelectionMode(JFileChooser.FILES_ONLY),那么行为就像我的需要一样好,但我必须使用 FILES_AND_DIRECTORIES 。
答案 0 :(得分:2)
您可以添加自己的MouseListener
final JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent arg0) {
if(arg0.getClickCount() == 2) {
File file = fileChooser.getSelectedFile();
if(file.isDirectory()) {
fileChooser.setCurrentDirectory(file);
fileChooser.rescanCurrentDirectory();
}
else {
fileChooser.approveSelection();
}
}
}
//Other methods (can be empty)
});
这将检查双击,并从JFileChooser
检查中获取所选文件,如果这是一个目录,如果它是跟随它,如果它是一个文件则返回该文件。此外,如果您选择一个目录并点击打开它会打开目录。