为什么不能自动使用invokeLater方法(使用import javax.swing.SwingUtilities)?

时间:2013-10-03 22:09:33

标签: java swing swingutilities invokelater

以下代码执行正常:

public static void main(String [] args) {
        Runnable r = new Runnable() {
            public void run() {
                createGUI();
            }
        } ;

        javax.swing.SwingUtilities.invokeLater(r);
    }

我很好奇为什么以下代码无法编译:

 import javax.swing.SwingUtilities;

    public static void main(String [] args) {
                Runnable r = new Runnable() {
                    public void run() {
                        createGUI();
                    }
                } ;

                invokeLater(r);
        }

javax.swing.SwingUtilities.invokeLater(r);import javax.swing.SwingUtilities; invokeLater(r);

之间的区别是什么?

1 个答案:

答案 0 :(得分:5)

要在类中引用静态成员,作为简单名称,您需要静态导入:

import static javax.swing.SwingUtilities.*;

以后你可以使用

invokeLater(r);

正常导入import javax.swing.SwingUtilities;允许您通过简单名称引用 SwingUtilities,但不能引用该类的任何成员。所以你可以这样做:

import javax.swing.SwingUtilities;

SwingUtilities.invokeLater(r);