Wednesday, September 14, 2016

Combo box with JTable


JComboBox  ruleComboBox = new JComboBox();

String [] comboArr = {"Include",  "Hide Until"};

ItemListener ruleItemListener = null;

class CustomComboBoxEditor extends DefaultCellEditor {

   private DefaultComboBoxModel model;
   public CustomComboBoxEditor() {
    super(ruleComboBox);
      this.model = (DefaultComboBoxModel)((JComboBox)getComponent()).getModel();
   }

   @Override
   public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    if (model.getSize() > 0)
     return super.getTableCellEditorComponent(table, value, isSelected, row, column);
    for (int i = 0; i < comboArr.length; i++) {
     model.addElement(comboArr[i]);
    }
      return super.getTableCellEditorComponent(table, value, isSelected, row, column);
    } 
   
  }

   
        ruleItemListener = new ItemListener() {
   
   @Override
   public void itemStateChanged(ItemEvent e) {
    int state = e.getStateChange();
    debug("state:" + (ItemEvent.DESELECTED == state ? "DESELECTED" : "SELECTED") + " item=" + e.getItem());
    
  };
    };

ruleComboBox.addItemListener(ruleItemListener);

 TableColumn displayRulesCol = tblDashboard.getColumnModel().getColumn(RULE_COLUMN);

 displayRulesCol.setCellEditor(new CustomComboBoxEditor());

No comments:

Post a Comment