gpt4 book ai didi

java - 如何在 Java Swing 应用程序的 JTable 单元格内正确设置可编辑复选框?

转载 作者:行者123 更新时间:2023-11-30 07:58:58 25 4
gpt4 key购买 nike

我有一个 JTable,其中有几个 JCheckBox。我正在从数据库中初始化 JCheckBoxes 和其他单元格值。我的问题是,当我单击 JCheckBox 以选中或取消选中时,它们什么都不做。

当我单击两次时,可编辑的 JTable 单元格变为 Activity 状态并显示 JCheckBox 的值为 0 或 1。我可以使用 0 或 1 编辑单元格,当我保存时,它会保存记录并加载已编辑的复选框值(value)。

以下代码片段展示了我是如何加载和创建 JCheckBoxes 的:

class TextBoxNewCellRenderer extends JPanel implements TableCellRenderer {

:::
public Component getTableCellRendererComponent(

case 10: //Active
switch (column) {
case 0:
this.add(lblStar);
this.add(new JLabel(value.toString(), JLabel.LEFT));
break;
case 1:
checkBox = new JCheckBox();
checkBox.setToolTipText("Set 0 OR 1");
checkBox.setEnabled(true);
if(value.toString().equals("1"))
checkBox.setSelected(true);
if(value.toString().equals("0"))
checkBox.setSelected(false);
this.add(checkBox);
break;
:::

return this;
}
}

在我的 renderTable 方法中,我覆盖了以下 isCellEditable:

 DefaultTableModel model = new DefaultTableModel() {
@Override
public boolean isCellEditable(int row, int column) {

switch (row){
case 10: //Active
switch (column) {
case 0:
return false;
case 1:
return true;
case 2:
return false;
case 3:
return false;
default:
return false;
}
default:
return false;
}
}
};

这是我双击 JCheckBoxe 时 JTable 的图片:

enter image description here

我是否可以一键选中或取消选中 JCheckBoxes?我不想用 0 或 1 更新 JTable 单元格以便选中或取消选中。请帮忙。

干杯。

最佳答案

When I clicked twice, the editable JTable cell become active and shows the value of JCheckBox which is 0 OR 1.

如果您希望使用默认渲染器/编辑器,那么您应该在 TableModel 中存储 Boolean.TRUEBoolean.FALSE .

然后你还需要覆盖TableModelgetColumnClass()方法来返回Boolean.class

阅读 How to Use Tables 上的 Swing 教程部分获取更多信息和工作示例。

关于java - 如何在 Java Swing 应用程序的 JTable 单元格内正确设置可编辑复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39897608/

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