public JComboBoxUnit() {
	    super();
	    final ListCellRenderer r = getRenderer();
	    setRenderer(new ListCellRenderer() {
	      public Component getListCellRendererComponent(JList list, Object value,
	                 int index, boolean isSelected, boolean cellHasFocus) {
	        Component c;
	        if(disableIndexSet.contains(index)) {
	          c = r.getListCellRendererComponent(list,value,index,false,false);
	          c.setEnabled(false);
	        }else{
	          c = r.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus);
	          c.setEnabled(true);
	        }
	        return c;
	      }
	    });
	    Action up = new AbstractAction() {
	      public void actionPerformed(ActionEvent e) {
	        int si = getSelectedIndex();
	        for(int i = si-1;i >= 0;i--) {
	          if(!disableIndexSet.contains(i)) {
	            setSelectedIndex(i);
	            break;
	          }
	        }
	      }
	    };
	    Action down = new AbstractAction() {
	      public void actionPerformed(ActionEvent e) {
	        int si = getSelectedIndex();
	        for(int i = si+1;i < getModel().getSize();i++) {
	          if(!disableIndexSet.contains(i)) {
	            setSelectedIndex(i);
	            break;
	          }
	        }
	      }
	    };
	    ActionMap am = getActionMap();
	    am.put("selectPrevious3", up);
	    am.put("selectNext3", down);
	    InputMap im = getInputMap();
	    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0),      "selectPrevious3");
	    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_UP, 0),   "selectPrevious3");
	    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0),    "selectNext3");
	    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_DOWN, 0), "selectNext3");
	  }