Hei*_*erg 3 java swing compiler-errors resultset ms-access-2007
我正在Java 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);
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我的代码中有什么问题?
数据库是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);
}
}
Run Code Online (Sandbox Code Playgroud)
JTable table=new JTable(column,data); // wrong parameters
Run Code Online (Sandbox Code Playgroud)
构造函数希望您将数据指定为第一个参数:
JTable table=new JTable(data, column);
Run Code Online (Sandbox Code Playgroud)
不要使用Arrays从数据库中读取数据.你不知道制作数组有多大.而是使用Vectors,因为DefaultTableModel将支持Vectors.
查看Table From Database中的TableFromDatabaseExample.java源代码,了解一些通用代码,以便开始使用数据库中的数据填充JTable.
另外,不要在SQL代码上使用空的catch块.您应该显示例外.