JFileChooser在Java,NetBeans中不起作用

时间:2017-01-09 00:06:13

标签: java swing netbeans jfilechooser

我会总结并抱歉我的英语。

我有一个客户端和一个服务器线程,当触摸一个按钮时,发送文件正确地显示了带有showOpenDialog的JFileChooser,当想要在收到文件时在服务器线程中创建第二个JFileChooser时,只会出现一个空白屏幕。

我已经在一个类,一个函数,一个新的JFrame和同一个函数中创建了代码。

从我看到的情况来看,在创建第二个JFileChooser时会出现问题,因为如果在第一个中我通过showSaveDialog更改它,那么它显示得很好。

代码:

class GuardarArchivo extends javax.swing.JFrame {

  JFrame jf = new JFrame();
  jf.setAlwaysOnTop(true);

  JFileChooser elegirRuta = new JFileChooser();

  elegirRuta.setDialogTitle("Selecciona donde guardar el archivo: ");
  int returnVal = elegirRuta.showSaveDialog(jf);

  System.out.print(returnVal);
  ruta = elegirRuta.getSelectedFile().getAbsolutePath();

}

图像:

enter image description here

1 个答案:

答案 0 :(得分:1)

您的问题可能在这些评论中显示:

  

我有一个客户端和一个服务器线程,当触摸一个按钮时,发送文件正确地显示了带有showOpenDialog的JFileChooser,当想要在收到文件时在服务器线程中创建第二个JFileChooser 时,只出现一个空白屏幕。

您可能遇到线程问题。您不应该在Swing事件派发线程(EDT)以外的任何线程中打开JFileChooser。可能文件传输代码阻止EDT阻止它执行其必要的功能,包括绘制GUI的功能,因此是全白对话框。由于你没有发布有效的MCVE我无法给你一个确切的解决方案,除了建议你注意在EDT的线程中执行所有长时间运行的代码,以及EDT上的所有Swing代码。有关Swing线程问题的更多信息,请阅读:Lesson: Concurrency in Swing

要获得更好的帮助,请考虑创建并发布Minimal, Complete, and Verifiable Example Program。我们不希望看到您的整个程序,而是您应该将代码压缩到仍然编译的最小位,没有与您的问题无关的额外代码,但仍然可以证明您的问题。您可以通过简单地尝试隔离并暴露错误来自己解决问题。