如何从主类或ContactInfromation类调用此类

时间:2016-07-07 08:04:07

标签: java swing

public class RetriveUser extends ContactInformation {
    public void retriveUser(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container content = this.getContentPane();
    this.setLayout(new FlowLayout());

    Connection connection;
    ResultSet resultSet;
    Statement statement = null;
    Vector data = new Vector();

    try {
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/contact_info","root","");
        System.out.println("Connection established");
        statement = connection.createStatement();
        resultSet = statement.executeQuery(retriveUser);
        ResultSetMetaData metaData =resultSet.getMetaData();
        int columns = metaData.getColumnCount();

        while (resultSet.next()){
            Vector row = new Vector(columns);
            for (int i=1; i<=columns; i++){
                row.addElement(resultSet.getObject(i));
            }
            data.addElement(row);

        }


    } catch (SQLException e) {
        System.out.println("Exception occur");
        e.printStackTrace();
    }
    Vector columnName = new Vector();
    columnName.addElement("id");
    columnName.addElement("first_name");
    columnName.addElement("last_name");
    columnName.addElement("district");
    columnName.addElement("city");
    columnName.addElement("address");
    columnName.addElement("father_name");
    columnName.addElement("mobile_no");
    columnName.addElement("email");

    table = new JTable(data,columnName);
    JPanel tabPanel = new JPanel();
    tabPanel.add(table);
    content.add(tabPanel,BorderLayout.SOUTH);
}

}

我已经创建了一个主类,我正在扩展这个类中的主类。所以,虽然我从主类调用这个类,如RetriveUser.retriveUser();它显示非静态方法无法从静态方法引用..所以如何从主类ContactInformation类调用。

2 个答案:

答案 0 :(得分:2)

您的主要课程是静态的,retriveUser()不是。您可以将retriveUser方法标记为静态(由于您在该方法中使用实例变量,因此无法正常工作)或者您创建RetriveUser的实例

 public static void main(String[] args) {
    new RetriveUser().retriveUser();
 }

这至少会在语法上解决你的问题。

请注意,创建与数据库的连接的代码应单独管理。 GUI(JTable)和用户检索也是如此。对于此示例,您应该至少有3个单独的类。

答案 1 :(得分:1)

在你的主要课堂上做

这样的事情:

RetriveUser ru = new RetriveUser();
ru.retriveUser();