Мой текущий код выглядит следующим образом:Получение значения из компонента свинг снаружи EDT
final String[] value = new String[1];
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
value[0] = textArea.getText();
}
});
Использование конечного массива кажется немного рубить. Есть ли более элегантное решение?
Я много искал, но, похоже, я ничего не могу найти, что меня удивляет. Хотя я продолжаю сталкиваться с SwingWorker
, но я не уверен, что это подходит в этом случае?
Я предполагаю, что JTextArea.getText()
не является потокобезопасным.
Спасибо.
Ах, так что в основном просто сохранить значение в свойство объекта, а не локальную переменную? Это должно сделать трюк :) –
Так что проголосуйте, пожалуйста, пожалуйста ??? : D (это мой первый ответ на вопрос cmon) – racc
И да, это, вероятно, более элегантное решение, потому что вы абстрагируете задачу сохранения текста в другом классе ... – racc