Swing容器中在jTable中新增combobox下拉框時,有關一個下拉框值改變,另一個下拉框值隨之改變的方法
在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));
}
}
});