Java Main Class加载GUI未运行

时间:2014-11-12 12:37:12

标签: java mysql swing

您好我有一个名为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 Class是一个空白的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?

3 个答案:

答案 0 :(得分:2)

添加

    gui.setVisible(true);

    RCSAccV1GUI gui = new RCSAccV1GUI();

或在此区块内

public RCSAccV1GUI() {
    initComponents();
}

将可见性设置为true。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

创建JFrame时是否已调用setVisible(true)?默认情况下,JFrames不可见。

编辑:以及在" main"中添加gui.setVisible(true)。 class,从" RCSAccV1GUI"中删除main方法。我不认为您想要两个主要方法,并且还在那里创建了另一个RCSAccV1GUI实例。