Greenfoot:Jfilechooser崩溃程序

时间:2015-09-12 03:21:28

标签: java swing debugging jfilechooser greenfoot

所以我正在使用Greenfoot为Java高中项目编写程序。在我的程序中,我使用JFileChooser让用户选择一个图像来编辑它等等。

无论如何,当我第二次运行它时,似乎JFileChooser总是崩溃我的JVM。它在我第一次启动程序时总是有效,但如果我不重新启动JVM和程序,它将在我第二次使用它时冻结我的程序。

我不确定这是不是某种错误或编码错误(可能没有正确处理摆动元素?)

基本上,这是我用来打开JFileChooser的东西:

final JFileChooser fc = new JFileChooser();
JFrame frame = new JFrame();
fc.setFileFilter(new FileNameExtensionFilter("Images", "jpg", "png"));
int returnVal = fc.showOpenDialog(frame); //freezes here
if(returnVal == JFileChooser.APPROVE_OPTION) {
    //etc...

如果它有所不同,我使用的是Java 1.7.0_71

的mac

感谢任何帮助 - 谢谢!

1 个答案:

答案 0 :(得分:0)

Greenfoot在特定线程上运行代码(内部称为模拟线程)。如果要使用Swing,则必须在Swing线程中使用它。我相信你的代码已经陷入僵局,因为在Swing线程中使用了Swing类。您可以使用EventQueue.invokeLater切换到Swing线程并返回(Greenfoot不是为了支持这一点而设计的,但无论如何它应该可以工作 - invokeLater比invokeAndWait更好)。