編輯:解決了一些問題後,我遇到的更大問題是由我正在使用的Apache POI導致的。我正在努力解決這個問題。顯然它受到沙箱的限制。java swing和web start的線程問題
我對Swing很陌生,並創建了一個小的Swing應用程序,我現在需要通過web開始運行。我正在嘗試使用FileOpenService並更新文本顯示。我想我遇到了線程問題,因爲FileOpenService對話框從不出現,並且我的文本顯示沒有得到更新。
我真的找不到任何與我現在做的事情不同的例子。
想法?
謝謝!
編輯:我現在有FileOpenService對話框出現。我改變了我的主要:
public static void main(String[] args) throws Exception {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MainFrame();
}
});
}
但是,我仍然無法讓我的顯示更新。這是我做了更新:
Runnable r = new Runnable() {
public void run() {
for (final String s : Logger.getMessages())
append(s + "\n");
}
};
try {
if (SwingUtilities.isEventDispatchThread())
r.run();
else
SwingUtilities.invokeAndWait(r);
}
和我的append方法:
private void append(Color c, String s) {// throws Exception {
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY,
StyleConstants.Foreground, c);
int len = _textPaneLog.getDocument().getLength();
try {
_textPaneLog.getDocument().insertString(len, s, aset);
} catch (BadLocationException e) {
e.printStackTrace();
}
}
沒有一個簡短的代碼示例說明你在做什麼,沒有人可以開始猜測你錯在哪裏。 – 2009-12-07 19:21:42
我想我可能會提供一些東西。短短几分鐘。 – Casey 2009-12-07 19:27:40
您是否創建了新的主題?如果是的話......他們是幹什麼用的?如果不是,是什麼讓你認爲這是一個線程問題?它可能很容易成爲一個錯字。 – 2009-12-07 19:31:25