繁体   English   中英

Java Swing和Web Start的线程问题

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM