我正在使用Intellij思想平台。
我有以下代码:
package GUI.test;
import javax.swing.*;
public class Ramka extends JFrame{
Ramka(){
setVisible(true);
setSize(100,100);
}
public void main (String[] args){
new Ramka();
}
}
我本以为编译完这段代码后会看到一个JFrame,但什么也没出现。这会是什么样的问题?
也必须承认,我没有可能运行方法"main"。InteliIdea建议我只编译Ramka.java。InteliIdeay说,编译后,编译成功了,但仅此而已,什么都没有发生。在我之前的练习中,我总是使用"main"方法。
您应该这样做:
public static void main (String[] args){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Ramka().setVisible(true);
}
});
}
除了在main
处缺少static
标识符之外,您还必须确保您的帧在正确的线程中运行,检查swing 的"并发性"
如果你真的运行main,你会看到你的Ramka。Main应该总是声明为public static void main(String[] args)
,而您忘记了static
。如果您将其更改为:
public static void main (String[] args){
new Ramka();
}
它应该运行。