事件调度线程

时间:2013-04-06 16:59:07

标签: java

我试图在一个框架内制作一个简单的按钮,但是按钮图标没有正确显示我的问题是为什么? 2.)也为什么我们不能放                 wingUtilities.invokeLater(new Runnable() {
public void run() { new SwingDemo(); } });
在SwingDemo()内部,或者public void actionPerformed(ActionEvent ae)  3.)哪个语句使edt线程? 请尝试用简单的术语解释否则会有更多的疑惑。

import javax.swing.*;
import java.awt.event.*;
class SwingDemo implements ActionListener {
SwingDemo() {
    JFrame jfrm = new JFrame("A Simple Swing Application");
    jfrm.setSize(275, 100);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JButton jlab = new JButton(" Button ");
    jfrm.add(jlab);
    jfrm.setVisible(true);
}
public static void main(String args[]) {
    SwingUtilities.invokeLater(new Runnable() {       //2
    public void run() {
    new SwingDemo();
    }
    });
}
    public void actionPerformed(ActionEvent ae) {
    //jlab.setText("You selected " + ae.getActionCommand());
    //showStatus("You selected " + ae.getActionCommand());

} }

1 个答案:

答案 0 :(得分:0)

在应用程序的初始阶段对SwingUtilities.invokeLater(...)的调用,以便在事件调度线程中创建UI。它需要在之前发生构造函数或应用程序中的任何后续方法。创建的线程称为initial thread