简体   繁体   English

java swing从另一个线程从JTextField获取值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM