gpt4 book ai didi

java - 如何在 Netbeans 中使用 java 将 JCheckBox 放置在 Jtable 中数据库显示的每个数据旁边?

转载 作者:行者123 更新时间:2023-12-01 09:22:44 27 4
gpt4 key购买 nike

我有两张 table 。 JTable1Jtable2。 Jtable1 显示来自数据库的数据。 Jtable2 应该为 Jtable1 中的每一行设置 checkbox。我希望 Jtable2 中的行数等于 Jtable1。这两张 table 是挨着的。

这是一个例子:

/image/SmVEG.jpg

在此示例中,每个数据项旁边都有一个复选框。我希望在 JTable2 中为 Jtable1 中的每个数据项生成一个复选框。

下面是一张图片,可以让您更好地了解:

/image/pNvNa.png

这里是代码:

   public void fetch()
{

try
{

String sqlp = "select * from american";
pst = (OraclePreparedStatement) conn.prepareStatement(sqlp);
rs = (OracleResultSet) pst.executeQuery(sqlp);

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


row =jTable1.getRowCount();

while(i!=row)
{
jTable2.add(check);
}
}
catch(Exception ex )
{
JOptionPane.showMessageDialog(null, ex);
}

}

最佳答案

jTable2.add(check);

您不能只将 JCheckBox 添加到表中的每一行。表不包含 Swing 组件。它呈现表的 TableModel 中包含的数据。

您需要将数据(代表复选框)添加到表使用的TableModel

DbUtils 类返回一个包含数据的 TableModel。所以你有几个选择:

  1. 使用 DbUtils 类返回的 DefaultTableModel 并向模型添加新的数据列。阅读 DefaultTableModel API。您可以使用 addColumn(...) 方法向模型添加新的数据列。

该列被添加到模型的末尾,因此您需要更改表的 View 以在表的开头显示该列。您可以使用 JTablemoveColumn(...) 方法来执行此操作。

最后,当您创建 JTable 时,您需要重写 getColumnClass(...) 方法以返回 Boolean.class,以便可以使用正确的渲染器/编辑器.

  • 另一个选项是创建一个自定义 TableModel,用复选框包装当前模型。查看:How to add checkbox in Jtable populated using rs2xml有关此方法的示例

  • 最后,只要不要使用 DbUtils,那么您就可以完全控制 TableModel 中的数据。查看:Java Resultset to JTable with Checkbox有关此方法的示例。

  • 关于java - 如何在 Netbeans 中使用 java 将 JCheckBox 放置在 Jtable 中数据库显示的每个数据旁边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057363/

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