[英]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.