java - 抛出异常后的空白消息对话框

标签 java swing exception joptionpane event-dispatch-thread

我正在学习 Java,我尝试制作一个简单的客户端-服务器应用程序。我的服务器有 GUI 和一个启动服务器的按钮。单击后,另一个线程将启动。我将其称为主服务器线程,因为它处理连接并处理客户端。我还有关闭服务器的按钮,但不是整个应用程序。我关闭 ServerSocket 以中断该线程,以便我可以停止服务器。我希望弹出消息对话框 inf finally block 来通知我服务器停止运行。 这是服务器 run 方法的一些简化和修改的代码:

public void run(){
    try{
      JOptionPane.showMessageDialog(null,"begining");      
      ss = new ServerSocket(TCP_PORT);

    while(cont){

       Socket sock = ss.accept();
       exec.execute(new ServerThread(sock));

    }catch(SocketException soex){
      //JOptionPane.showMessageDialog(null,"SocketException");
    }finally{
      JOptionPane.showMessageDialog(null,"finally");
    }
    //JOptionPane.showMessageDialog(null,"after finally");
  }

第一个消息对话框显示正确,但是当其他 3 个对话框中的一些由于异常而弹出时,我只得到带有标题和窗口边框的灰色消息对话框,但没有消息或任何按钮。我无法关闭它,我无法关闭我的应用程序。它卡在那里。

我使用的是Ubuntu,它使用open-jdk javac版本“1.7.0_25”编译,并使用相同版本的java运行它。我还尝试了版本1.6,以及Oracle 1.7.0_25(java和javac)。每次我都会得到相同的结果。

这里有什么问题,我该如何解决?

最佳答案

关于java - 抛出异常后的空白消息对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250004/

相关文章:

java - MockMvc 测试 OPTIONS 请求

java - 如何处理 Hibernate/Spring 应用程序中的后台线程

Java Bean 属性 : jdk7 vs jdk 8 - WeakOnTheFeet vs StrongInTheArm

.net - 帮助调试 "Could not load file or assembly X or one of its dependencies"的提示

java - Spring Boot 中的验证嵌套模型

java - 边框布局循环。 J面板/Swing

java - 移动 JTable 中的多列

安卓 GCM SSLException

java - 向 web 服务发送 POST 请求时出现 NetworkOnMainThreadException

Java HashMap 关键问题