JFileChooser在Java、NetBeans中不起作用

JFileChooser在Java、NetBeans中不起作用,java,swing,netbeans,jfilechooser,Java,Swing,Netbeans,Jfilechooser,我要总结一下,对不起我的英语 我有一个客户端和一个服务器线程,当触摸一个按钮时,发送文件会正确显示在JFileChooser和showOpenDialog中,当接收到文件时,想要在服务器线程中创建第二个JFileChooser时,只会出现一个空白屏幕 我已经在一个类、一个函数、一个新的JFrame和同一个函数中创建了代码 据我所见,创建第二个JFileChooser时会出现问题,因为如果在第一个JFileChooser中我通过showSaveDialog进行更改,它会显示得很好。 代码: 图片:

我要总结一下,对不起我的英语

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

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

据我所见,创建第二个JFileChooser时会出现问题,因为如果在第一个JFileChooser中我通过showSaveDialog进行更改,它会显示得很好。

代码:

图片:

您的问题可能会在以下评论中暴露出来:

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

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

<>为了更好的帮助,考虑创建和发布。我们不想看到您的整个程序,但您应该将代码压缩为最小的代码位,它仍然可以编译,没有与您的问题无关的额外代码,但仍然可以演示您的问题。您只需尝试隔离并暴露bug,就可以很好地解决问题。

要获得更好的帮助,请发布一篇文章。
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();

}