【问题标题】:Java Main Class to load GUI not running加载 GUI 的 Java 主类未运行
【发布时间】:2014-11-12 12:37:12
【问题描述】:

您好,我有一个名为 main.java 的主类,其中有:

import my.rcsv1.accounting.DBConnect;

public class main {
    public static void main(String[] args) {
        DBConnect connect = new DBConnect();
        RCSAccV1GUI gui = new RCSAccV1GUI();
    }

}

我还有另外两个类 DBConnect 和 RCSAccV1GUI。 DBConnect 类包含以下内容:

public class DBConnect {

    public Connection con;
    public Statement st;
    public PreparedStatement pst = null;
    public ResultSet rs;


    public DBConnect(){
        try{
            String driverMySQL = "com.mysql.jdbc.Driver";  
            Class.forName(driverMySQL);
            con = DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=pass");
            st = con.createStatement();
        }catch(ClassNotFoundException | SQLException ex){
            JOptionPane.showMessageDialog(null, ex);          
        }
    }
}

RCSAccV1GUI 类是一个空白的 JFrame,目前只有一个标签,即标题。

package my.rcsv1.accounting;

import my.rcsv1.accounting.DBConnect;

public class RCSAccV1GUI extends javax.swing.JFrame {
    public RCSAccV1GUI() {
        initComponents();
    }
    public static void main(String args[]) {


        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new RCSAccV1GUI().setVisible(true);
            }
        });
}

当我在 NetBeans 中运行主类时,它会继续运行并且不会生成 JFrame。为什么我运行主类时JFrame打不开?

【问题讨论】:

  • 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)。
  • 你能不能也展示你的 RCSAccV1GUI 类?
  • RCSAccV1GUI 是否将自身设置为可见?
  • 我已更新问题以显示 RCSAccV1GUI 类的相关代码。如您所见,它设置为可见。
  • 您确定 JFrame 不可见吗?由于您没有添加任何内容,因此它会很小,可能您没有注意到。

标签: java mysql swing


【解决方案1】:

添加

    gui.setVisible(true);

之后

    RCSAccV1GUI gui = new RCSAccV1GUI();

或在此块内

public RCSAccV1GUI() {
    initComponents();
}

将可见性设置为真。

【讨论】:

    【解决方案2】:

    Java 仅在您运行的类中启动 main 方法,而不是在其他类中。将代码从框架类移动到构造函数中,或者更好的是从main 调用的单独方法。

    【讨论】:

    • 好的,我明白了。但即使我只是运行 RCSAccV1GUI 类,也没有任何显示,它说它正在运行。知道为什么会这样吗?
    • 不确定,但我会从运行调试器并观察线程开始。
    【解决方案3】:

    您在创建 JFrame 时是否调用了setVisible(true)?默认情况下,JFrame 是不可见的。

    编辑:除了在“main”类中添加gui.setVisible(true),从“RCSAccV1GUI”中删除main方法。我认为您不希望有两个主要方法,并且您还在那里创建了另一个 RCSAccV1GUI 实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      相关资源
      最近更新 更多