我正在创建一个Java程序,该程序接收每个数据行中带有Person对象的文本文件,由Name,SSN和电子邮件表示。该程序的目的是比较O(N * log(N))排序的效率与排序列表抽象数据结构以及哈希表的排序。这些细节对手头的问题并不重要。
程序的工作方式是提示用户:
排序和搜索实验室
当用户按下时,1。将提示他们使用JFileChooser接收输入文件(带有People的数据)和输出文件(比较数据将被打印等等。
现在,在使用名为jgrasp的IDE时,该程序运行良好。但是,当我继续学习Java时,我想切换到具有更多功能的IDE,我选择安装IntelliJ。我的程序仍然正常运行,但是,按1选择文件时,JFileChooser对话框根本不显示。
以下是创建JFileChooser并从中检索文件所涉及的主要方法:
/** Creates and opens a JFileChooser.
* @returns An open JFileChooser dialog box.
*/
public JFileChooser openJFileChooser() {
JButton open = new JButton();
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Input Test Data");
chooser.setMultiSelectionEnabled(true);
FileNameExtensionFilter filter = new FileNameExtensionFilter("Text files","txt");
chooser.setFileFilter(filter);
if (chooser.showOpenDialog(open) == JFileChooser.APPROVE_OPTION) {}
return chooser;
}
/** Returns an array of files chosen from the JFileChooser
* @param A JFileChooser to pick files from.
*/
public File[] openFiles(JFileChooser chooser) {
return chooser.getSelectedFiles();
}
答案 0 :(得分:0)
从IntelliJ运行时,您确定甚至调用了openJFileChooser()吗?你是如何阅读" 1"? jGRASP和IntelliJ(/ n vs / r / n)中输入换行符的格式可能不同。
另外,从您的描述中看起来您可能正在从主线程调用Swing方法。如果是这样,您需要重新构建程序,因为这可能会导致随机错误。它可能不是你问题的原因。