簡體   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