1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| class PanelEditor extends AbstractCellEditor implements TableCellEditor {
protected JPanel panel;
protected JCheckBox check;
private CustomItem customItem;
protected JComboBox combo;
private JTable table;
private int row;
private int column;
public PanelEditor() {
super();
panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 10));
check = new JCheckBox();
check.setOpaque(true);
check.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new Runnable() {
@Override
public void run() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
String comboValue = "";
if (combo.getItemCount() != 0)
comboValue = (String) combo.getSelectedItem();
// customItem.setSeleted(check.isSelected(), row);
// customItem.setValue(comboValue, row);
customItem.setSeleted(check.isSelected());
customItem.setValue(comboValue);
table.getModel().setValueAt(customItem, row, column);
// fireEditingStopped();
// getCellEditorValue();
}
});
}
}).start();
}
});
combo = new JComboBox();
combo.setOpaque(true);
combo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED) {
Object item = event.getItem();
customItem.setSeleted(check.isSelected());
customItem.setValue(item.toString());
table.getModel().setValueAt(customItem, row, column);
}
}
});
panel.add(check);
panel.add(combo);
}
public void setComboxBoxData(String[] data) {
this.combo.removeAllItems();
this.combo.setModel(new DefaultComboBoxModel(data));
this.combo.setSelectedIndex(0);
}
public void setComboxBoxData(Vector<String> liftModel) {
this.combo.removeAllItems();
this.combo.setModel(new DefaultComboBoxModel(liftModel));
this.combo.setSelectedIndex(0);
}
@Override
public Object getCellEditorValue() {
return customItem;
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
this.table = table;
this.customItem = (CustomItem) value;
this.row = row;
this.column = column;
this.check.setSelected(customItem.isSeleted());
this.combo.setSelectedItem(customItem.getValue());
if (isSelected) {
check.setForeground(table.getSelectionForeground());
check.setBackground(table.getSelectionBackground());
} else {
check.setForeground(table.getForeground());
check.setBackground(table.getBackground());
}
if(isSelected==false)
if(row % 2==0){
this.panel.setBackground(new Color(198, 217, 241));
this.check.setBackground(new Color(198, 217, 241));
}
else{
this.panel.setBackground(new Color(238, 236, 225));
this.check.setBackground(new Color(238, 236, 225));
}
return panel;
}
} |
Partager