繁体   English   中英

jtable上的复选框并获取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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM