2013-04-21 73 views
1
frame.addWindowListener(new WindowAdapter() { 
     @Override 
     public void windowClosing(WindowEvent b) { 

      // Do stuff 
      if (socket != null) { 

        socket.close(); 
        socket = null; 

       } catch (IOException e) { 
        socket = null; 
       } 
       System.out.println("About to abort!"); 

      } 
      dispose(); 

     } 

    }); 

從上面的代碼關閉我嘗試才達到的是,當他們點擊紅色的X按鈕,它會檢查TCP套接字仍然連接或沒有,如果它仍然連接然後close();併爲套接字分配一個null,並且我想打印一些東西,但是根本沒有發生任何事情。無動作執行時的窗口框架在Java中

我在這裏做錯了什麼?

請指教。

由於

+0

所以框架佈置但打印無關,是嗎?如果是這樣,那意味着套接字爲空。沒有辦法告訴你爲什麼沒有看到更多的代碼。 – 2013-04-21 21:15:28

+0

@JBNizet是的,但即使沒有這個if語句,也沒有真正的打印? – Ali 2013-04-21 21:17:51

+0

@JBNizet不要介意我認爲這是我的錯誤,印刷聲明在if語句中!對不起:S – Ali 2013-04-21 21:19:17

回答

2

確保關閉操作被設置爲DO_NOTHING_ON_CLOSE

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);