2014-06-12 66 views
2

我正在Java Swing的一個項目「醫院管理系統」中工作。現在在記錄頁面上,我想以表格格式顯示所有存儲的患者記錄。但我從來沒有在JTable中使用過。現在,當我試圖在一個簡單的程序中獲取記錄時,它將在控制檯中的所有記錄打印在for循環中,但是當我轉到JFrame並嘗試在JTable上獲取記錄而不是創建表時,它顯示如下錯誤消息:如何在Java Swing中創建簡單表格?

Ex_test.java:51: cannot find symbol, symbol : constructor JTable(java.lang.String[],java.lang.String[][]) 
location: class javax.swing.JTable, JTable table=new JTable(column,data); 

任何人都可以告訴我什麼是我的代碼中的問題?

數據庫是MS-Access 2007中

import javax.swing.*; 
import javax.swing.JTable; 
import java.awt.event.*; 
import java.awt.*; 
import java.sql.*; 

public class Ex_test extends JFrame 
{ 
    public static void main(String[] args) 
    { 
     Ex_test ob=new Ex_test(); 
    } 
    int i=0; 
    String column[]; 
    String data[][]; 
    //JTable table; 
    public Ex_test() 
    { 
     super("Array"); 
     String[] id=new String[15]; 
     String[] name=new String[15]; 
     String[] contact=new String[15]; 

     try 
     { 
      Connection con; 
      Statement st; 
      ResultSet rs; 

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      con=DriverManager.getConnection("jdbc:odbc:test"); 
      st=con.createStatement(); 
      rs=st.executeQuery("select * from test"); 
      String column[]={"ID","NAME","CONTACT"}; 
      while (rs.next()) 
      { 
        id[i]=rs.getString("id"); 
        name[i]=rs.getString("sname"); 
        contact[i]=rs.getString("contact"); 
        i++; 
      } 
      for (i=0;i<4 ;i++) 
      { 
       System.out.println(""+id[i]+name[i]+contact[i]); 
       String data[][]={{id[i],name[i],contact[i] }};    
      }   
     } 
     catch (Exception e) 
     { 
     } 
     JTable table=new JTable(column,data); 
     setSize(1000,1000); 
     setVisible(true);  
    } 
} 

回答

5
JTable table=new JTable(column,data); // wrong parameters 

構造函數需要您指定的數據作爲第一個參數:

JTable table=new JTable(data, column); 

不要用數組用於讀取數據一個數據庫。你不知道有多大陣列。而是使用Vectors,因爲DefaultTableModel將支持Vectors。

查看TableFromDatabaseExample.java源代碼Table From Database的一些通用代碼,以便您開始使用數據庫中的數據填充JTable。

此外,不要在SQL代碼上使用空的catch塊。你應該顯示異常。

+0

@AndrewThompson,我看你還沒看過我的博客。它的第一個建議是搜索網頁上的「ResultSetTableModel」:) – camickr

+0

糟糕,我的不好。 :P噪音已刪除。 –

+0

非常感謝@camickr :-) – Heisenberg