【发布时间】:2015-04-01 13:48:20
【问题描述】:
我想知道正确使用 java swing 的最可接受的方法是什么。我知道在 java swing 应用程序中默认有两个线程 Main Thread 和 Event-Dispatch。我以这种方式创建和显示窗口。
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(()-> new MyWindow().initializeAndShow());
}
但我想知道我应该如何在运行时使用 java swing。我的意思是,例如在按钮单击时在 JText 中设置文本。我需要一直这样做吗?
SwingUtilities.invokeLater(()-> button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
SwingUtilities.invokeLater(()-jtext.setText("HelloFromAWTThread");
}
});
是否正确,我认为按钮也是 UI 的一部分,因此应该在调度线程中设置侦听器,或者这不正确? 并且设置 JText 也应该在 AWT 线程中?
【问题讨论】:
标签: java multithreading swing event-dispatch-thread