在jTable中,我们经常会需要添加下拉框,一个下拉框很容易设置,但是两个下拉框设置二级联动就需要添加addItemListener监听方法。
所要功能如下图:
代码如下:
//类型列表 comboboxType.removeAllItems(); comboboxType.addItem(""); comboboxType.addItem("母线"); comboboxType.addItem("线路"); comboboxType.addItem("主变"); //获取母线列表 busList = service.getBusId(); comboboxBus.removeAllItems(); busMap.clear(); for (int i = 0; i < busList.size(); i++) { String[] s = busList.get(i); comboboxBus.addItem(s[1]); busMap.put(s[1], s[0]); } //获取线路列表 lineList = service.getLine(); comboboxLineName.removeAllItems(); lineMap.clear(); for (int i = 0; i < lineList.size(); i++) { String[] s = lineList.get(i); comboboxLineName.addItem(s[1]); lineMap.put(s[1], s[0]); } //获取主变列表 transformerList = service.getTransformer(); comboboxTransformer.removeAllItems(); transformerMap.clear(); for (int i = 0; i < transformerList.size(); i++) { String[] s = transformerList.get(i); comboboxTransformer.addItem(s[1]); transformerMap.put(s[1], s[0]); }
Column_Width.setTableRowColor2_line(jTable7); jTable7.getColumn("类型").setCellEditor(new DefaultCellEditor(comboboxType)); jTable7.getColumn("退役时间").setCellEditor(new DefaultCellEditor(jDatePicker1)); comboboxType.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { if(comboboxType.getSelectedItem().toString().equals("母线")){ jTable7.getColumn("名称").setCellEditor(new DefaultCellEditor(comboboxBus)); }else if(comboboxType.getSelectedItem().toString().equals("线路")){ jTable7.getColumn("名称").setCellEditor(new DefaultCellEditor(comboboxLineName)); }else if(comboboxType.getSelectedItem().toString().equals("主变")){ jTable7.getColumn("名称").setCellEditor(new DefaultCellEditor(comboboxTransformer)); } } });
