将JCheckBox添加到JTable中

时间:2014-01-10 17:02:53

标签: java swing jtable jcheckbox

我有一个将数据库显示为动态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);
}

2 个答案:

答案 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列类型。

有关此问题的详细信息,请查看此消息。

How to add JCheckBox in JTable?