Netbeans JFrame初始化;构建没有问题,但没有创建窗口

7

我正在使用Java,并尝试使用NetBeans创建GUI。我之前已经做过这个,但现在很困惑,因为我的代码虽然没有出错,但在NetBeans中运行时将不会产生一个新的JFrame窗口。然而,初始化JFrame的代码与我的先前具有GUI的程序(“program one”)基本相同。当我尝试运行“program one”时,它可以正常工作。这是我的问题代码;

package aircannoncalculator;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class CalcGUI extends JFrame {

public CalcGUI(){
    setTitle("Air Cannon Modeler");
    setSize(400,400);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args){

        CalcGUI gui = new CalcGUI();
        gui.setVisible(true);

}
}

根据NetBeans,编译始终正常进行,但是如我所说,没有实际的窗口产生。我做错了什么?
另外注意:忽略我的冗长导入列表。

对我来说运行得很好,一定是其他问题...你确定Netbeans正在运行这个类吗?它没有尝试运行其他的“main”类吗? - MadProgrammer
非常有信心。我在包中还有另一个 .java 文件,所以我注释掉了它的 main 方法进行检查。重新构建成功了,但没有窗口显示。 - TheMike25
尝试在代码中放置调试语句(System.out.println),并查看执行流程。 - MadProgrammer
在主程序和calcGUI中都尝试过,但都没有成功,但问题奇怪地解决了!我想知道这是否是NetBeans的问题,所以我复制了所有代码并创建了一个新项目,将代码放回去等等。现在它可以工作了。哇... - TheMike25
1
听起来像是Netbeans试图运行错误的项目/类 - 我们经常犯这种错误:P - MadProgrammer
2个回答

18

你需要将JFrame设置为项目的主类。右键点击项目名称(咖啡杯图标)-> 设置配置 -> 自定义 -> 在“运行”部分,点击“Main Class:”右侧的浏览按钮以选择默认的主类(即所需的JFrame),完成!


1
package aircannoncalculator;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class CalcGUI extends JFrame {

    public CalcGUI(){
        setTitle("Air Cannon Modeler");
        setSize(400,400);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args){

        CalcGUI gui = new CalcGUI();

        //Try adding some JComponents
        this.pack();    //this tends to compact the JFrame container & displays it when you setVisible(true)

        gui.setVisible(true);


    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接