我有一个将数据库显示为动态JTable
的程序。它的工作正常。现在我想在每个字段中使用CheckBox向表中添加1个列。我该怎么办?
这是我的代码:
public static DefaultTableModel myTableModel(ResultSet rs) throws SQLException {
ResultSetMetaData metadata = (ResultSetMetaData) rs.getMetaData();
int columnsCount = metadata.getColumnCount();
Vector<String> columnNames = new Vector<>();
for (int i = 1; i < columnsCount; i++) {
columnNames.add(metadata.getColumnName(i));
}
Vector<Object> data = new Vector<>();
while (rs.next()) {
Vector<Object> eachLine = new Vector<>();
for (int i = 1; i < columnsCount; i++) {
eachLine.add(rs.getObject(i));
}
data.add(eachLine);
}
return new DefaultTableModel(data, columnNames);
}
答案 0 :(得分:3)
好的。我可以再添加一列吗?。
您需要为名称和添加到模型的每一行添加一列。要在表格的开头添加列,您可以执行以下操作:
Vector<String> columnNames = new Vector<>();
columnNames.add("Boolean");
...
Vector<Object> data = new Vector<>();
data.add(new Boolean(false));
无需创建自定义渲染器,但正如其他人提到的那样,您需要覆盖getColumnClass()方法以返回该列的Boolean.class,以便表格可以使用相应的渲染器。
答案 1 :(得分:0)
如果您想要Boolean
中的复选框,请添加JTable
字段。
False将取消选择,true值将代表所选复选框。
如果您是NetBeans用户,则可以在添加Boolean
时找到JTable
列类型。
有关此问题的详细信息,请查看此消息。