Ist es erforderlich, in EDT auf Schaukeleigenschaften zugreifen zu können?Java

Java-Forum
Anonymous
 Ist es erforderlich, in EDT auf Schaukeleigenschaften zugreifen zu können?

Post by Anonymous »

Ist es erforderlich, in EDT auf Schaukeleigenschaften zugreifen zu können? Alle Swing -Komponenten und verwandten Klassen müssen auf dem Ereignis -Versand -Thread auf auf abgerufen werden. Ausnahmen geworfen Auch wenn ich explizit eine failonThreadviolationRepaintManager installiere (siehe diese Seite für weitere Informationen).

Code: Select all

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());
}
}
Wenn ich damit durchkommen kann, würde ich es lieber vermeiden, jeden Getter-Anruf in einen EDT-posting-Lambda einzuwickeln (auch wenn ich es mit einer Dienstprogramm-Methode erleichtere, wie Callandwait (Field :: GetText) ).>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post