чекбокс на jtable и получение значений соответствующих строк в java swing - PullRequest
1 голос
/ 03 августа 2011

Я добавляю флажок в 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 для нажатия на ячейки JCheckBox JTable.

 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 раза.

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Нет необходимости создавать и назначать пользовательский редактор. JTable возвращает соответствующий рендерер и редактор на основе класса, возвращенного методом getColumnClass(,..). Флажок автоматически используется для Boolean данных.

ListSelectionListener запускает два события, одно для отмены выбора ранее выбранной строки и одно для выбора текущей строки.

1 голос
/ 03 августа 2011

перед щелчком по любой ячейке значение в этом поле равно нулю (я не вижу, чтобы вы устанавливали какой-либо контент для своей таблицы в примере кода)

после того, как флажок в ячейке установлен, он теперьявное истинное значение, установленное флажком.

после повторного щелчка оно будет иметь явно установленное нулевое значение, установленное флажком.

...