我正在尝试编写一个程序,该程序将提示用户选择一个文件夹,然后将允许用户显示该文件夹中的所有内容。我一直在网上搜索,找到了几个使用JFileChooser的示例,包括此处的一个示例。当我尝试在JGrasp中的上一个链接中使用该示例时,该示例运行没有问题。但是,当我尝试在NetBeans中运行它时,会出现错误(由于需要返回类型,因此无法编译DemoJFileChooser类,并且Main中的行显示找不到符号DemoJFileChooser)。我不确定这是什么问题,但是我已经尽力做到了下面的程序可以编译并正常运行,但是当我选择选项1时,该程序仅冻结一秒钟,然后重新显示菜单。我无法显示文件选择对话框。我究竟做错了什么?import java.util.Scanner;import javax.swing.JFileChooser;public class FileDirectoryProcessing {JFileChooser chooser;String choosertitle;public static void main(String[] args) { SelectionMenu: while (true) { Scanner scannerIn = new Scanner(System.in); System.out.println("0 - Exit"); System.out.println("1 - Select Directory"); System.out.println("2 – List directory contents"); System.out.println("Select Option"); try{ int userInput = Integer.parseInt(scannerIn.nextLine()); switch (userInput) { case 0: System.out.println("Thank you"); break SelectionMenu; case 1: System.out.println("Select a directory"); new FileDirectoryProcessing().ChooseDirectory(); break; case 2: System.out.println("Directory Contents"); break; default: System.out.println("Please make a valid selection"); break; } } catch (NumberFormatException e){ System.out.println("Please make a valid selection"); } } }
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
该方法showOpenDialog
接受一个组件,而this
(的实例FileDirectoryProcessing
)不是一个组件,因此是问题所在。
component
在方法中提供父实例。或现在,您也可以通过chooser
(实例为JFileChooser
)或null
。
因此,以下两个选项都可以正常工作:
chooser.showOpenDialog(chooser)
或者
chooser.showOpenDialog(null)
添加回答
举报
0/150
提交
取消