[英]threading issues with java swing and web start
編輯:解決了一些問題后,我遇到的更大問題是由我使用的Apache POI引起的。 我正在努力弄清楚這一點。 顯然,它受到沙箱的限制。
我是Swing的新手,並創建了一個小型Swing應用程序,現在需要通過網絡啟動來運行它。 我正在嘗試使用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();
}
}
您呼叫* .openFileDialog(FOO,吧)吧?
FileOpenService fos = (FileOpenService)ServiceManager.lookup("javax.jnlp.FileOpenService");
FileContents fc = fos.openFileDialog(null, null);
抱歉,這是一個愚蠢的問題,但是在您使用源代碼更新問題之前,我什至沒有想到。
我所遇到的問題與此無關。 在我嘗試執行此操作的位置附近的代碼的另一部分中,我導致了應用程序退出。 這是我嘗試執行的其他操作的延誤,而我在實施此操作時卻錯過了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.