Требуется ли это для доступа к свойствам свинг в EDT?JAVA

Программисты JAVA общаются здесь
Anonymous
Требуется ли это для доступа к свойствам свинг в EDT?

Сообщение Anonymous »

Требуется ли для доступа к свойствам свинг в EDT? Все компоненты Swing и связанные с ними классы, если иное не задокументировано, должны быть доступны в потоке диспетчеризации событий. Даже если я явно установил failonthreadviolationRepaintmanager (см. Эта страница для получения дополнительной информации).

Код: Выделить всё

import org.fest.swing.edt.FailOnThreadViolationRepaintManager;
import org.fest.swing.edt.GuiActionRunner;
import org.fest.swing.edt.GuiQuery;
import org.fest.swing.exception.EdtViolationException;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import javax.swing.JTextField;

import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;

class EdtTest {

@BeforeAll
static void beforeAll() {
FailOnThreadViolationRepaintManager.install();
}

@Test
void settingThrows_butAccessingDoesNot() {
JTextField textField = GuiActionRunner.execute(new GuiQuery() {
@Override
protected JTextField executeInEDT() {
return new JTextField();
}
});
String text = "Some text";
assertThrows(EdtViolationException.class, () -> textField.setText(text));
assertDoesNotThrow(() -> textField.getText());
}
}
Если я смогу сойти с рук, я бы предпочел избежать обертывания каждого вызова Getter в какую-то Lambda EDT-Posting (даже если я облегчу с каким-то методом утилиты, такими как CallandWait (Field :: getText) ).
java 8.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ies-in-edt

Вернуться в «JAVA»