![](/img/trans.png)
[英]Getting String value rather than checkbox on JTable using Java Swing?
[英]checkbox on jtable and getting values of corresponding rows in java swing
我在JTable中添加了复选框。我想获取所选JCheckBox行中特定单元格的值。添加复选框代码就像
JCheckBox checkBox = new javax.swing.JCheckBox();
jTable1 = new javax.swing.JTable();
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] { },
new String [] {
"Station", "OperationName", "TliScantime", "StartTime", "Completedtime", "TliScanTime-StartTime", "StartTime-CompletedTime", "Select"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jTable1.getColumn("Select").setCellEditor(new DefaultCellEditor(checkBox));
在netbeans中。
我使用addListSelectionListener单击JTable的JCheckBox的单元格。
jTable1.getSelectionModel().addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(ListSelectionEvent event ) {
// if(jTable1.getValueAt(0,7).equals(true)){
Object b=jTable1.getValueAt(0,7);
System.out.println(b);
//}
}
});
我不明白为什么它第一次打印为空,之后将打印2次。
无需创建和分配自定义编辑器。 JTable将基于从getColumnClass(,..)
方法返回的类返回适当的渲染器和编辑器。 复选框会自动用于Boolean
数据。
ListSelectionListener会触发两个事件,一个事件用于取消选择先前选择的行,另一个事件用于选择当前行。
在单击任何单元格之前,该字段中的值为空(我看不到您在示例代码中为表设置了任何内容)
选中单元格中的复选框后,它现在将具有该复选框设置的显式真实值。
再次单击后,它将具有由复选框设置的显式设置的空值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.