gpt4 book ai didi

java - 如果单元格包含复选框,如何获取 JTable 的内容

转载 作者:行者123 更新时间:2023-12-01 10:32:40 24 4
gpt4 key购买 nike

我在 Netbeans 中创建了一个 JTable,其中第一列由复选框组成。

这些复选框是通过添加

JCheckBox checkBox = new javax.swing.JCheckBox(); 

jTable1.getColumn("ColumnName").setCellEditor(new DefaultCellEditor(checkBox)); 

下右键单击 JTable 时自定义代码。在Table Contents中,我将数据类型指定为Boolean(我基本上按照该网站上的说明进行操作,因为我以前从未使用过 JTables :http://forums.netbeans.org/topic9007.html)

我现在的问题:例如,如何获取 row=1 & coloumn=1 中的实际复选框?这些尝试不起作用:

JCheckBox j = (JCheckBox) jTable1.getComponent(1);

JCheckBox j = (JCheckBox) jTable1.getModel().getValueAt(1, 1);

我收到错误消息“java.lang.String 无法转换为 javax.swing.JCheckBox”

对于我想做的事情,我需要取回“复选框”类型的对象/组件,而不仅仅是找出它是否被选中。这可能吗?我在编程方面并不是很先进,所以这就是我遇到麻烦的原因。

最佳答案

编辑:下面的旧答案,提醒通过 TableModel 直接获取 boolean 值比乱搞更安全使用 JTable UI :)

不要尝试将任何内容转换为 JCheckBox,而是迭代 Model 以获得所需的值。

<小时/>

Component 列表包含 Object 中定义的所有内容,因此您可能并不总能获得所需的特定元素。

我建议循环遍历 Components 并使用 instanceof 检查它是否与 JCheckBox 匹配。

for(Component c : jTable1.getComponents[]) {
if(c instanceof javax.swing.JCheckBox) {
// do the stuff
} else {
// don't do the stuff
}
}

或者甚至迭代第一列中的Components,可能会让事情变得更容易。

关于java - 如果单元格包含复选框,如何获取 JTable 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011128/

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