![](/img/trans.png)
[英]How do I get values of another cell if a checkbox is selected of the corresponding checkbox in jtable?
[英]How to get content of JTable if cell contains checkbox
我在Netbeans中创建了一个JTable,其第一列包含复选框。
这些复选框是通过添加
JCheckBox checkBox = new javax.swing.JCheckBox();
和
jTable1.getColumn("ColumnName").setCellEditor(new DefaultCellEditor(checkBox));
右键单击JTable时在定制代码下。 并且在Table Contents中,我将数据类型指定为Boolean (因为我之前从未使用过JTable,所以我基本上遵循了该网站上的说明: 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
为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
,都可能使事情变得更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.