【发布时间】:2013-01-03 11:20:42
【问题描述】:
我想创建 JTable 运行时。它应该绑定数据库表中的数据。 例如,我想显示 empmaster 表中所有员工的列表,并且应该根据表 empmaster 中的行和列动态生成行和列。对于静态表创建,我使用以下代码。
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:dsn");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from empmaster");
ResultSet rs1=st.executeQuery("select * from empmaster");
String title[]={"empcode","empname"};
int c=0;
while(rs.next())
{
c++;
}
Object obj[][]= new Object[c][2];
JTable table= new JTable(obj,title);
JScrollPane jsp= new JScrollPane(table);
add(jsp);
int i=0;
while(rs1.next())
{
table.setValueAt(rs.getString("empcode"),i,0);
table.setValueAt(rs.getString("empname"),i,1);
}
}
catch(Exception ex
{
ex.printStackTrace();
}
【问题讨论】:
-
1) 对代码块使用一致且符合逻辑的缩进。代码的缩进是为了帮助人们理解程序流程。 2)在启动时创建表,但稍后更新模型。 3) 为了尽快获得更好的帮助,请发帖SSCCE。
-
顺便说一句,您的代码无法编译(缺少变量、括号、重复声明等...)
-
安德鲁如何在不传递行数和列数的情况下创建表
-
@Adeshsingh 只需调用
TableModel model = new DefaultTableModel(); JTable table = new JTable(model);,然后再将列和行添加到model。您还可以决定使用ResultSetTableModel 而不是DefaultTableModel。
标签: java swing jdbc jtable awt