2016-07-07 9 views
0
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); 
} 

}wie diese Klasse nennen von Hauptklasse oder ContactInfromation Klasse

Ich habe eine Hauptklasse gemacht und ich bin Hauptklasse in dieser Klasse erstreckt. Also, während ich diese Klasse aus der Hauptklasse wie RetriveUser.retriveUser() aufrufen; Es zeigt nicht statische Methode kann nicht von der statischen Methode referenziert werden .. so wie von der Hauptklasse ContactInformation Klasse aufrufen.

+0

Sie benötigen ein neues Objekt 'neue RetriveUser() instanziiert. RetriveUser()' –

Antwort

2

Ihre Hauptklasse statisch ist, Ihre retriveUser() nicht. Entweder Sie beschriften Sie Ihre retriveUser Methode statisch (was jetzt nicht funktionieren würde, da Sie Instanzvariablen in diesem Verfahren verwenden) oder Ihre erstellen eine Instanz Ihrer RetriveUser wie diese

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

dies Ihr Problem lösen würde syntaktisch, zumindest .

Bitte beachten Sie, dass der Code zum Erstellen einer Verbindung zu Ihrer Datenbank separat verwaltet werden sollte. Dasselbe gilt für die GUI (JTable) und das Abrufen von Benutzern. Sie sollten mindestens 3 separate Klassen für dieses Beispiel haben.

+0

dank seiner nützlich und arbeiten ... und danke für die Anregung separate Klassen für die Erstellung von ... –

+0

Sie sind willkommen . – Matt

1

in der Hauptklasse etwas tun, wie folgt aus:

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

Dank für Lösung bietet –

Verwandte Themen