gpt4 book ai didi

java - 使用数据库数据在 DefaultTableModel 中插入复选框

转载 作者:行者123 更新时间:2023-12-02 11:26:31 24 4
gpt4 key购买 nike

我在 NetBeans 中使用 DefaultTableModel 来显示 MySQL 数据库中的记录。我的数据能够显示,但我想要的是在表格末尾显示一个复选框列。

我知道它需要被覆盖,但我不知道如何以及从哪里开始。我从互联网上看到了大量的示例,但它们使用的是静态字符串数据,而不是来自数据库。直到现在我还是不明白。非常感谢您的帮助。

下面是我的示例代码。

  try { 
conn = DatabaseConnect.connect();
ps = conn.prepareStatement("SELECT productID, name, quantity, price, checked FROM tbl_inventory");
rs = ps.executeQuery();
jTable2.setModel(DbUtils.resultSetToTableModel(rs));
} catch(SQLException ex) {
}

jTable2 能够显示我来自 tbl_inventory 的记录。我的数据库表 tbl_inventory 中的“checked”列的默认 boolean 值为 0。但我不知道如何在我的 JTtable 中将其显示为复选框。

最佳答案

The "checked" column from my database table tbl_inventory has default boolean value of 0. But I don't know how to display it as checkbox in my JTtable.

最简单的方法是在创建 TableModel 时将“检查的”数据转换为 boolean 值。然后将使用默认的渲染器/编辑器。

jTable2.setModel(DbUtils.resultSetToTableModel(rs));   

这意味着你不能使用上面的方法。您需要自己复制数据并在选中的列上进行转换。

查看Table From DataBase 。最后一个示例数据库中的表示例展示了如何复制数据而不进行任何转换。

您需要修改代码,例如:

while (rs.next())
{
Vector<Object> row = new Vector<Object>(columns);

for (int i = 1; i <= columns; i++)
{
if (i == ?) // convert checked column
{
int value = rs.getInt(i);
row.addElement( value == 0 ? Boolean.FALSE : Boolean.TRUE );
}
else
row.addElement( rs.getObject(i) );
}

data.addElement( row );
}

关于java - 使用数据库数据在 DefaultTableModel 中插入复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49587241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com