2013-03-09 119 views
0

我想在table中顯示數據庫中的數據。我得到這個錯誤「非靜態變量jtable1不能從靜態上下文中引用」。幫我解決這個錯誤我該如何解決jtable中的這個錯誤?

st.executeQuery("select * from course"); 
       ResultSet rs = st.getResultSet(); 
       ResultSetMetaData md = rs.getMetaData(); 
       int c_count = md.getColumnCount(); 
       Vector data = new Vector(c_count); 
       Vector row = new Vector(c_count); 
       Vector colname = new Vector(c_count); 
       for(int i=0;i<c_count;i++) 
       { 
        colname.addElement(md.getColumnName(i)); 
       } 
       while(rs.next()) 
       { 
       for(int i=0;i<c_count;i++) 
       { 
        row.addElement(rs.getObject(i)); 
       } 
       data.addElement(row); 
       row = new Vector(c_count); 
       } 
       DefaultTableModel model = new DefaultTableModel(data,colname); 
       jTable1.setModel(model); 
+0

這將是巨大的,如果你能與所有的簽名分享包含此代碼片段以及jTable1聲明的方法 – 2013-03-09 11:27:34

+0

private javax.swing.JTable jTable1;是聲明和方法是公共靜態無效主要 – user1870724 2013-03-09 11:42:01

回答

0

的主要方法有一個靜態的背景下,因此有直接的任何實例變量的訪問權限。假設您有一個名爲Foo的類,其中包含靜態主方法和一個私有變量jTable1。首先你應該添加一個getter是否jTable1變量具有以下簽名

public JTable getTable() { 
return jTable1; 
} 

接下來,在你的主要方法,你必須創建的富

Foo fooInstance = new Foo(); 

一個實例現在,你可以設置模型如下圖所示:

DefaultTableModel model = new DefaultTableModel(data,colname); 
fooInstance.getTable().setModel(model); 

最後,Foo類看起來像

public class Foo { 


    private javax.swing.JTable jTable1; 

    public JTable getTable() { 
      return jTable1; 
    } 

    public static void main(String[] args) { 
      //your code 

      Foo fooInstance = new Foo(); 

      DefaultTableModel model = new DefaultTableModel(data,colname); 
      fooInstance.getTable().setModel(model); 

      //your code 
    } 
} 

一般來說,這個話題是,你必須要熟悉,所以先來看看官方的Java教程的東西http://docs.oracle.com/javase/tutorial/或者它只是谷歌

+0

謝謝。!我有另一個懷疑。爲什麼矢量類顯示爲過時的collection.is它可以運行我的程序,或者我應該修改它? – user1870724 2013-03-09 15:22:34

+0

我有這個疑問,因爲我改變了代碼,因爲你說我的錯誤已被清除。當我運行文件時,我只得到一個空行,有四行五列。但是,我在我的行中創建了相同數量的行和列數據庫。爲什麼它是空的? @Cyril Deba – user1870724 2013-03-09 15:39:05

+0

根據提供的信息很難說。我會建議調試該項目,它可以幫助解決問題 – 2013-03-11 10:20:22

相關問題