2012-07-18 109 views
1

我正在使用swing(JFrame)作爲我的應用程序的UI。我需要使用try/catch將程序面臨的異常顯示爲帶有紅色的JFrame標籤。在JFrame中顯示異常

目前我在做這個:

some class extends JFrame 
    {  

     JLabel label=new JLabel(""); 
     add(label); 
     findFile() 

     { 
       try{ 
        //some code 

       } 
       catch(IOException e) 
       { 
        label.setText(e.toString()); 
       } 


    } 

所以想知道是否有catch塊寫的一行代碼是否正確與否? 如果(yes = ok)thx

否則請告訴我如何在JFrame上打印Exception作爲標籤。提前

THX ..

+0

你的代碼將被編譯,應該運行得很好。你的意思是什麼? – Mohayemin 2012-07-18 09:42:34

+0

我的意思是它沒有在jframe中的標籤中顯示任何異常。 – Mohit 2012-07-18 09:45:45

回答

3

上面的代碼可能無法正常工作,因爲它似乎並不更新代碼在事件分派線程(EDT)中運行。此線程負責更新您的UI,響應事件等。

您很可能必須使用SwingUtilities.invokeLater(Runnable run)來更新文本。也就是說,大多數Swing應用程序(據我所知)通常傾向於使用JOptionPane s來向用戶顯示錯誤消息和/或任何其他通知。

你應該沒有問題找到兩個在線的例子。

+0

我認爲JOptionPanes是更好,更容易與之合作的東西。 – Mohit 2012-07-18 10:24:37