我使用Netbeans 7.1创建了一个Jtable。 该表创建了一个默认模型,如下所示
table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
我还添加了以下代码行来填充Sqlite数据库中的数据。
public void tabl()
{
try
{
stmt=conn.createStatement();
String sql2="SELECT * FROM students";
rs=stmt.executeQuery(sql2);
int n=0;
while(rs.next())
{
table.setValueAt(rs.getString(1),n,0);
table.setValueAt(rs.getString(2),n,1);
table.setValueAt(rs.getString(3),n,2);
table.setValueAt(rs.getString(4),n,3);
n++;
}
}
catch(SQLException e)
{
}
}
我的测验是如何使JTable
能够使用默认模型更新和删除记录....我是表模型的新手。
答案 0 :(得分:1)
DefaultTableModel dmReset = (DefaultTableModel) table.getModel();
try {
stmt=conn.createStatement();
String sql2="SELECT * FROM students";
rs=stmt.executeQuery(sql2);
while (rs.next()) {
Vector v = new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
dmReset.addRow(v);
}
} catch (Exception e) {
System.err.println(e.toString());
}
注意:在rs.getXXX()
方法中使用完整列标题而不是列索引。
有关TableModel
的更多详细信息,请参阅this document.
如果你想获得其他类型的数据,如Float,int等......可以添加一个开关盒, 你可以找到例子here。
答案 1 :(得分:0)
你必须像这样创建声明
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
并注意select * FROM table;始终返回只读结果集。而不是查询应该选择column1,columnn FROM table;