проблемы с java swing и web start - PullRequest
       23

проблемы с java swing и web start

0 голосов
/ 07 декабря 2009

РЕДАКТИРОВАТЬ: После исправления нескольких проблем, большая проблема, которую я имею, вызвана 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);
    } 

и мой метод добавления:

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();
    }
}

Ответы [ 2 ]

0 голосов
/ 23 декабря 2009

Проблема, с которой я столкнулся, не имела ничего общего с этим. В другой части моего кода рядом с тем местом, где я пытался это сделать, я вызывал выход из приложения. Это было воздержание от чего-то другого, что я пробовал, которое пропустило, когда я работал над его реализацией.

0 голосов
/ 07 декабря 2009

Вы звоните * .openFileDialog (foo, bar) правильно?

FileOpenService fos = (FileOpenService)ServiceManager.lookup("javax.jnlp.FileOpenService");

FileContents fc = fos.openFileDialog(null, null);

Извините, если это глупый вопрос, но пока вы не обновите свой вопрос с источником, я не могу думать о многом другом.

...