gpt4 book ai didi

java - JFileChooser.showOpenDialog() 卡住我的程序

转载 作者:行者123 更新时间:2023-12-02 12:48:19 26 4
gpt4 key购买 nike

我的 JFileChooser 类有问题。我正在使用下面的类(我写的)来一个接一个地加载多个文件,它通常适用于 2 或 3 个文件(有时 1 个,有时 6 个,看起来是随机的,尽管它一定不是)并且在某一时刻,它卡住在 showOpenDialog(null), 没有抛出异常,也没有返回任何内容。我真的不知道它是从哪里来的。

这是我的类(class):

public class CustomFileChooser extends JFileChooser {

public File chooseFile(String windowTitle, String description, String extension, boolean mustExist) {

setDialogTitle(windowTitle);
resetChoosableFileFilters();
setAcceptAllFileFilterUsed(false);
addChoosableFileFilter(new CustomFileFilter(description, new String[] {extension}));
setSelectedFile(new File(""));

if (mustExist) {
setApproveButtonText("Open");
} else {
setApproveButtonText("Save");
}

File file = null;
while (file == null) {

if (showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {

file = getSelectedFile();
if (mustExist) {
if (!file.canRead()) {
file = null;
JOptionPane.showMessageDialog(null, "Cannot read from the specified file!", "Error while opening the file", JOptionPane.ERROR_MESSAGE);
}
} else {
if (!file.getName().toLowerCase().endsWith(extension.toLowerCase())) {
file = new File(file.getAbsolutePath().concat(extension));
}
if (file.exists()) {
if (file.canWrite()) {
if (JOptionPane.showConfirmDialog(null, "Do you really want to overwrite this file?", "Erasing file", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.NO_OPTION) {
file = null;
}
} else {
file = null;
JOptionPane.showMessageDialog(null, "Cannot write to the specified file!", "Error while opening the file", JOptionPane.ERROR_MESSAGE);
}
}
}
} else {
return null;
}
}

return file;
}

private static final long serialVersionUID = 1L;
}

编辑:我尝试在 Windows 上运行我的程序,一切正常。您了解与此类/方法相关的平台相关问题吗?

最佳答案

在代码块中使用您的代码,如下所示。

private void fileChooserMethod() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
javax.swing.JFileChooser fc_file_selector= new JFileChooser();
int response = fc_file_selector.showOpenDialog(null);
//your code here
}
});
}

关于java - JFileChooser.showOpenDialog() 卡住我的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23643146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com