2012-08-13 258 views
1

在尋找一種簡單的方式來顯示錯誤目前我使用JXErrorPane沒有堆棧跟蹤

JXErrorPane.showDialog(null, new ErrorInfo("Error", e.getMessage(), null, null, exception, ErrorLevel.SEVERE, null));

導致以下我發現SwingX

http://i.imgur.com/JKeF4.png

我真的很喜歡這個樣子,但我不想顯示堆棧跟蹤。我試過傳遞null而不是異常,但這種方式我沒有得到細節。

有沒有什麼辦法可以省略堆棧跟蹤? (就像這樣:http://i.imgur.com/kObaH.png

+0

嗯......不太明白你的問題:如果不是堆棧跟蹤,_do_你想顯示什麼? – kleopatra 2012-08-13 10:45:37

+0

對不起,基本上我想隱藏堆棧跟蹤的痕跡部分,如果有意義http://i.imgur.com/kObaH.png – Shishigami 2012-08-13 10:49:41

回答

3

如果你不喜歡自動建立的細節信息(這是由BasicErrorPaneUI建,看看它的getDetailsAsHtml),你可以傳遞一個自定義的,如:

Exception e = new NullPointerException("something ..."); 
    // copied from BasicErrorPaneUI 
    StringBuffer html = new StringBuffer("<html>"); 
    html.append("<h2>" + "Error" + "</h2>"); 
    html.append("<HR size='1' noshade>"); 
    html.append("<div></div>"); 
    html.append("<b>Message:</b>"); 
    html.append("<pre>"); 
    html.append(" " + e.toString()); 
    html.append("</pre>"); 
    html.append("<b>Level:</b>"); 
    html.append("<pre>"); 
    html.append(" " + ErrorLevel.SEVERE); 
    html.append("</pre>"); 
    html.append("</html>"); 

    ErrorInfo errorInfo = new ErrorInfo("Error", e.getMessage(), 
      html.toString(), null, e, ErrorLevel.SEVERE, null); 
    JXErrorPane.showDialog(null, errorInfo); 

如果您希望更頻繁地做到這一點,我會建議一個自定義ERRORINFO子

+0

非常感謝!這正是我想要的。 – Shishigami 2012-08-13 12:37:33

+0

@Sishishami很高興幫助 - 你可能會考慮接受這個答案:-) – kleopatra 2012-08-21 15:41:30