JTable中JComboBox的默认值问题
现有如下几个组件,JTable,JComboBox
在JTable中加入了一列JComboBox,
table.getColumnModel().getColumn(5).setCellEditor(new DefaultCellEditor(new DP_ComboBox(items,"0")));
加载数据后
model.addRow(new Object[] {"A0001", "AUName", "AUUserID", "AUPasswd", "AUType", new DP_ComboBox(items,"0"), "AUDF", "AURegion"});
其他组件说明:
model为一个AbstractTableModel类;
DP_ComboBox为一个自定义的JComboBox,其中实现了类似WEB中<select>的效果,即有一个text属性和一个value属性,显示的为text,运用过程中取实际的value值
但现在发现如下的一个问题:
向JTable中加载数据后JComboBox中显示的数据正确,但是如果选取一个非最后行的JComboBox时,发现默认值变成了在设置cellEditor时的值了,而不是默认从数据库中读出的值。
用此例来说,在设置cellEditor时,设置的是new DP_ComboBox(items,"0"),即JComboBox的默认值为0,显示为“否”,但如果经过如下加载数据后
model.addRow(new Object[] {"A0001", "AUName", "AUUserID", "AUPasswd", "AUType", new DP_ComboBox(items,"1"), "AUDF", "AURegion"});
model.addRow(new Object[] {"A0001", "AUName", "AUUserID", "AUPasswd", "AUType", new DP_ComboBox(items,"0"), "AUDF", "AURegion"});
这样在JTable中就有了两行数据,但由于第二行设置数据的JComboBox默认值为0和setCellEditor一致,所以看不出区别,但点了第一行之后默认值却由原来的1变成了0,即根据数据库加载的数据第一行JComboBox的默认值为1,但由于setCellEditor设置时的值为0,点了这个JComboBox后即便是不选择任何一项,显示的默认值都会变成0。
不知道有没有朋友遇到过这样的现象或者是有解决的方法,说的有点乱,不知道大家看明白了没有。问题比较急,希望能尽快解决,在此先谢谢各位啦。