java swing 从不同线程的 JTextField 获取值

标签 java multithreading swing

我知道,如果我需要从不同的线程更改 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/

相关文章:

java - Android自定义服务-类实现

java - 格式化 JLabel/JTextField 文本?

java - 如何更改 Java 小程序的背景颜色?

java - android.view.InflateException : Binary XML file line #29: Error inflating class android. widget.Button

java - 在 Google App Engine Java 中,实例上的一个线程是否有可能干扰另一个线程?

java - 如何在JavaFX中动态更新ListView单元格?

c# - 使用事件和 BackgroundWorker 更新导致竞争条件的 UI

java - 静态成员的顺序在 Swing 中是否敏感?

java - 编码故障排除

java - 嵌入式 Jetty 9 HTML 表单向应用程序发送数据