我对Swing很新,并创建了一个小型Swing应用程序,我现在需要通过Web start运行。我正在尝试使用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);
}
和我的追加方法:
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();
}
}
答案 0 :(得分:0)
你正在调用* .openFileDialog(foo,bar)吗?
FileOpenService fos = (FileOpenService)ServiceManager.lookup("javax.jnlp.FileOpenService");
FileContents fc = fos.openFileDialog(null, null);
很抱歉,如果这是一个愚蠢的问题,但在您使用来源更新您的问题之前,我无法想到其他问题。
答案 1 :(得分:0)
我遇到的问题与此无关。在我的代码的另一部分就在我试图这样做的地方附近,我正在导致应用程序退出。当我正在努力实现这个时,这是我尝试过的其他东西的延续。