我知道,如果我需要从不同的线程更改 JTextField
值,我需要使用 SwingUtilities.invokeLater()
调用。但是,如果我需要从不同的线程获取该值,我可以只使用 textfield.getText()
还是需要使用某种 invokeLater
调用?谢谢。
最佳答案
即使像 getText() 这样简单的东西也应该从事件调度线程调用。
如果您在另一个线程中,则可以使用 invokeAndWait :
final String[] textHolder = { null };
EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
textHolder[0] = someTextField.getText();
}
});
String text = textHolder[0];
关于java swing 从不同线程的 JTextField 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869988/