如何在JavaSwing中创建简单表?

如何在JavaSwing中创建简单表?,java,swing,compiler-errors,ms-access-2007,resultset,Java,Swing,Compiler Errors,Ms Access 2007,Resultset,我正在用JavaSwing开发一个项目“医院管理系统”。现在在记录页面上,我想以表格格式显示所有存储的患者记录。但我从未在swing中使用过JTable。现在,当我尝试在一个简单的程序中获取记录时,它会在for循环中打印控制台上的所有记录,但当我选择JFrame并尝试在JTable上获取记录时,它会显示一条错误消息,而不是生成一个表,如下所示: Ex_test.java:51: cannot find symbol, symbol : constructor JTable(java.lang.

我正在用JavaSwing开发一个项目“医院管理系统”。现在在记录页面上,我想以表格格式显示所有存储的患者记录。但我从未在swing中使用过JTable。现在,当我尝试在一个简单的程序中获取记录时,它会在for循环中打印控制台上的所有记录,但当我选择JFrame并尝试在JTable上获取记录时,它会显示一条错误消息,而不是生成一个表,如下所示:

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);       
    }   
}
import javax.swing.*;
导入javax.swing.JTable;
导入java.awt.event.*;
导入java.awt.*;
导入java.sql.*;
公共类Ex_测试扩展JFrame
{
公共静态void main(字符串[]args)
{
Ex_测试ob=新的Ex_测试();
}
int i=0;
字符串列[];
字符串数据[];
//JTable表;
公共Ex_测试()
{
超级(“阵列”);
字符串[]id=新字符串[15];
字符串[]名称=新字符串[15];
字符串[]联系人=新字符串[15];
尝试
{
连接con;
报表st;
结果集rs;
forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
con=DriverManager.getConnection(“jdbc:odbc:test”);
st=con.createStatement();
rs=st.executeQuery(“从测试中选择*);
字符串列[]={“ID”,“NAME”,“CONTACT”};
while(rs.next())
{
id[i]=rs.getString(“id”);
name[i]=rs.getString(“sname”);
contact[i]=rs.getString(“contact”);
i++;
}   
对于(i=0;i
构造函数希望您将数据指定为第一个参数:

JTable table=new JTable(data, column);
不要使用数组从数据库读取数据。您不知道数组的大小。请使用向量,因为DefaultTableModel将支持向量

查看中的
表fromDatabaseExample.java
源代码,了解一些常规代码,帮助您开始使用数据库中的数据填充JTable


另外,不要在SQL代码上使用空的catch块。您应该显示异常。

@andrewhompson,我知道您还没有读过我的博客。它提出的第一个建议是在web上搜索
resultsetablemodel
:)哦,我的坏消息。:p Noise已删除。非常感谢@camickr:-)
JTable table=new JTable(data, column);