Bur*_*ras 2 java swing invokelater swingutilities
以下代码执行正常:
public static void main(String [] args) {
Runnable r = new Runnable() {
public void run() {
createGUI();
}
} ;
javax.swing.SwingUtilities.invokeLater(r);
}
Run Code Online (Sandbox Code Playgroud)
我很好奇为什么以下代码无法编译:
import javax.swing.SwingUtilities;
public static void main(String [] args) {
Runnable r = new Runnable() {
public void run() {
createGUI();
}
} ;
invokeLater(r);
}
Run Code Online (Sandbox Code Playgroud)
之间有什么differenc javax.swing.SwingUtilities.invokeLater(r);和import javax.swing.SwingUtilities; invokeLater(r);
要在类中引用静态成员,作为简单名称,您需要静态导入:
import static javax.swing.SwingUtilities.*;
Run Code Online (Sandbox Code Playgroud)
以后你可以使用
invokeLater(r);
Run Code Online (Sandbox Code Playgroud)
正常导入import javax.swing.SwingUtilities;允许您通过简单名称引用该类 SwingUtilities,但不能通过该类的任何成员引用该类.所以你可以这样做:
import javax.swing.SwingUtilities;
Run Code Online (Sandbox Code Playgroud)
和
SwingUtilities.invokeLater(r);
Run Code Online (Sandbox Code Playgroud)