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