[英]java swing getting a value from a JTextField from a different thread
我知道,如果需要从其他线程更改JTextField
值,则需要使用SwingUtilities.invokeLater()
调用。 但是,如果我需要从其他线程获取该值,是否可以只使用textfield.getText()
还是需要使用某种invokeLater
调用? 谢谢。
如果您对getText()调用的结果可能不确定(即无序)感到满意,那么可以允许使用其他线程来获取值。
甚至应该从事件分发线程中调用诸如getText()这样的简单操作。
如果您在另一个线程中,则可以使用invokeAndWait :
final String[] textHolder = { null };
EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
textHolder[0] = someTextField.getText();
}
});
String text = textHolder[0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.