简体   繁体   English

如何在Java Swing中创建简单的表?

[英]How to create simple table in Java Swing?

I am working on a project "Hospital Management System" in Java Swing. 我正在Java Swing的一个项目“医院管理系统”。 Now on the records page I want to show all stored records of patients in a table format. 现在在记录页面上,我想以表格格式显示患者的所有存储记录。 But I have never worked with JTable in swing. 但我从来没有和JTable合作过。 Now when I tried to fetch records in a simple program, it is printing all records on console in for loop but when I go for JFrame and tried to fetch records on JTable, instead of making a table, it's showing a error message like: 现在,当我尝试在一个简单的程序中获取记录时,它在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);

Can anyone tell me what is the problem in my code? 谁能告诉我我的代码中有什么问题?

Database is MS-Access 2007. 数据库是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);       
    }   
}
JTable table=new JTable(column,data); // wrong parameters

The constructor expects you to specify the data as the first parameter: 构造函数希望您将数据指定为第一个参数:

JTable table=new JTable(data, column);

Don't use Arrays for reading data from a database. 不要使用Arrays从数据库中读取数据。 You don't know how large to make the arrays. 你不知道制作数组有多大。 Instead use Vectors, since the DefaultTableModel will support Vectors. 而是使用Vectors,因为DefaultTableModel将支持Vectors。

Check out the TableFromDatabaseExample.java source code from Table From Database for some general code to get you started in populating a JTable with data from a database. 查看Table From Database中TableFromDatabaseExample.java源代码,了解一些通用代码,以便开始使用数据库中的数据填充JTable。

Also, don't use an empty catch block on the SQL code. 另外,不要在SQL代码上使用空的catch块。 You should display the exception. 您应该显示例外。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM