2017-06-18 88 views
0

我創建了一個應用程序,它從Mysql數據庫中檢索數據並將它們顯示在JTable中。然後我在第一列添加了複選框,我可以用TableCellRendere顯示它們。但是當我嘗試檢查它們時,複選框未被檢查。事實上,我讀了如何在這個環節上適當使用一個TableCellEditor的,但我不明白的還有:如何使用TableCellEditor編輯複選框

https://docs.oracle.com/javase/8/docs/api/javax/swing/table/TableCellEditor.html

然後我得到這個代碼,但我不知道是什麼在方法public Component getTableCellEditorComponent()添加。

這裏是我需要完成的代碼:

回答

0

我已經解決了這個問題

public class CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor { 

protected JCheckBox checkBox; 

    public CheckBoxCellEditor() { 
     checkBox = new JCheckBox(); 
     checkBox.setHorizontalAlignment(SwingConstants.CENTER);   
    } 

    public Component getTableCellEditorComponent(
      JTable table, 
      Object value, 
      boolean isSelected, 
      int row, 
      int column) { 

     // What should I add here and can you explain me 

     return checkBox; 
    } 
    public Object getCellEditorValue() { 
     return Boolean.valueOf(checkBox.isSelected()); 
    } 

}

感謝:

[https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/components/TableSelectionDemoProject/src/components/TableSelectionDemo.java][1]

感謝