Java 将JCheckBox添加到JTable中

Java 将JCheckBox添加到JTable中,java,swing,jtable,jcheckbox,Java,Swing,Jtable,Jcheckbox,我有一个程序可以将数据库显示到动态JTable。工作正常。现在我想在表中再添加一列,每个字段中都有复选框。我该怎么办 这是我的密码: public static DefaultTableModel myTableModel(ResultSet rs) throws SQLException { ResultSetMetaData metadata = (ResultSetMetaData) rs.getMetaData(); int columnsCount = metadata

我有一个程序可以将数据库显示到动态
JTable
。工作正常。现在我想在表中再添加一列,每个字段中都有复选框。我该怎么办

这是我的密码:

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);
}
公共静态DefaultTableModel myTableModel(ResultSet rs)抛出SQLException{ ResultSetMetaData=(ResultSetMetaData)rs.getMetaData(); int columnsCount=metadata.getColumnCount(); 向量列名称=新向量(); for(int i=1;i如果您想在
JTable
中选中复选框,请添加一个
布尔
字段。 False将被取消选择,true值将表示选中的复选框。 如果您是NetBeans用户,则可以在添加
JTable
时查找
Boolean
列类型

要了解更多信息,请查看此页面


如果希望在
JTable
中选中复选框,请添加一个
布尔值
字段。 False将被取消选择,true值将表示选中的复选框。 如果您是NetBeans用户,则可以在添加
JTable
时查找
Boolean
列类型

要了解更多信息,请查看此页面


如果希望在
JTable
中选中复选框,请添加一个
布尔值
字段。 False将被取消选择,true值将表示选中的复选框。 如果您是NetBeans用户,则可以在添加
JTable
时查找
Boolean
列类型

要了解更多信息,请查看此页面


如果希望在
JTable
中选中复选框,请添加一个
布尔值
字段。 False将被取消选择,true值将表示选中的复选框。 如果您是NetBeans用户,则可以在添加
JTable
时查找
Boolean
列类型

要了解更多信息,请查看此页面


好的,我怎样才能再增加一列呢

您需要为名称和添加到模型中的每一行添加一列。要在表的开头添加列,可以执行以下操作:

Vector<String> columnNames = new Vector<>();
columnNames.add("Boolean");
...
Vector<Object> data = new Vector<>();
data.add(new Boolean(false));
Vector columnNames=new Vector();
columnNames.add(“布尔”);
...
向量数据=新向量();
data.add(新布尔值(false));
不需要创建自定义渲染器,但正如其他人提到的,您需要重写getColumnClass()方法以返回该列的Boolean.class,以便表可以使用适当的渲染器


好的,我怎样才能再增加一列呢

您需要为名称和添加到模型中的每一行添加一列。要在表的开头添加列,可以执行以下操作:

Vector<String> columnNames = new Vector<>();
columnNames.add("Boolean");
...
Vector<Object> data = new Vector<>();
data.add(new Boolean(false));
Vector columnNames=new Vector();
columnNames.add(“布尔”);
...
向量数据=新向量();
data.add(新布尔值(false));
不需要创建自定义渲染器,但正如其他人提到的,您需要重写getColumnClass()方法以返回该列的Boolean.class,以便表可以使用适当的渲染器


好的,我怎样才能再增加一列呢

您需要为名称和添加到模型中的每一行添加一列。要在表的开头添加列,可以执行以下操作:

Vector<String> columnNames = new Vector<>();
columnNames.add("Boolean");
...
Vector<Object> data = new Vector<>();
data.add(new Boolean(false));
Vector columnNames=new Vector();
columnNames.add(“布尔”);
...
向量数据=新向量();
data.add(新布尔值(false));
不需要创建自定义渲染器,但正如其他人提到的,您需要重写getColumnClass()方法以返回该列的Boolean.class,以便表可以使用适当的渲染器


好的,我怎样才能再增加一列呢

您需要为名称和添加到模型中的每一行添加一列。要在表的开头添加列,可以执行以下操作:

Vector<String> columnNames = new Vector<>();
columnNames.add("Boolean");
...
Vector<Object> data = new Vector<>();
data.add(new Boolean(false));
Vector columnNames=new Vector();
columnNames.add(“布尔”);
...
向量数据=新向量();
data.add(新布尔值(false));

不需要创建自定义渲染器,但正如其他人提到的,您需要重写getColumnClass()方法以返回该列的Boolean.class,以便表可以使用适当的渲染器。

我认为向我们展示这段代码不会有多大帮助。不过,我确实认为,如果您编写自己的
TableModel
,您会发现它更清晰。你应该创建你自己的。比如?好吧。我怎样才能再添加一列?你应该阅读JTables,你会发现一个关于使用自定义渲染器的部分。我不认为向我们展示这段代码会有多大帮助。不过,我确实认为,如果您编写自己的
TableModel
,您会发现它更清晰。你应该创建你自己的。比如?好吧。我怎样才能再添加一列?你应该阅读JTables,你会发现一个关于使用自定义渲染器的部分。我不认为向我们展示这段代码会有多大帮助。不过,我确实认为,如果您编写自己的
TableModel
,您会发现它更清晰。你应该创建你自己的。比如?好吧。我怎样才能再添加一列?你应该阅读JTables,你会发现一个关于使用自定义渲染器的部分。我不认为向我们展示这段代码会有多大帮助。不过,我确实认为,如果您编写自己的
TableModel
,您会发现它更清晰。你应该创建你自己的。比如?好的。我怎样才能再添加一列?你应该阅读JTables,你会发现一个关于使用自定义RendersNote的部分,它应该是布尔的,而不是布尔的,因为模型包含引用类型,
getColumnClass(int columnIndex)
method override应该为该列返回Boolean.class。请注意,该列应该是Boolean,而不是Boolean,因为模型包含引用类型,
getColumnClass(int columnIndex)
method override应该为该列返回Boolean.class。请注意,该列应该是Boolean,而不是Boolean,因为模型包含引用类型,所以