[英]java swing getting a value from a JTextField from a different thread
I know that if I need to change JTextField
value from a different thread I need to use SwingUtilities.invokeLater()
call. 我知道,如果需要从其他线程更改
JTextField
值,则需要使用SwingUtilities.invokeLater()
调用。 But if I need to get that value from a different thread, can I just use textfield.getText()
or I need to use some sort of invokeLater
call? 但是,如果我需要从其他线程获取该值,是否可以只使用
textfield.getText()
还是需要使用某种invokeLater
调用? Thanks. 谢谢。
如果您对getText()调用的结果可能不确定(即无序)感到满意,那么可以允许使用其他线程来获取值。
Even something as simple as getText() should be called from the event dispatch thread. 甚至应该从事件分发线程中调用诸如getText()这样的简单操作。
If you're in another thread, you can use invokeAndWait : 如果您在另一个线程中,则可以使用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.