MySQL query > select * from area_detail;
+-----------+---------------+--------+
|area_id |area_name |place_id|
+-----------+---------------+--------+
|1 |place1_area1 |1 |
|3 |place1_area2 |1 |
|5 |place1_area3 |1 |
|6 |place2_area1 |2 |
|10 |place2_area2 |2 |
|17 |place3_area1 |3 |
|19 |place1_area4 |1 |
+-----------+---------------+--------+
我有两个名为cbPlace和cbArea的JComboBox .... cbPlace显示地方,cbArea显示相应位置下的区域....
主要问题是当我想获得我选择的区域的相应id时。 ComboBox给了我自己的索引,如1 2 3 4 5等......
我希望获得结果...如果我从cbArea comboBox单击place1_area3它应该返回id为5(area_id)而不是3(cbArea.getSelectedIndex())。
当我在cbPlace组合框中选择place_2 ...并在cbArea组合框中选择place2_area1时...它给我id为1(cbArea.getSelectedIndex())...但我想要6作为id ... < / p>
我怎么能这样做?
当我在cbPlace组合框中单击place1并在cbArea组合框中单击place1_area1时...它给我id为1 ...因为在那种情况下组合框的索引我也是1 ....仅在这种情况下..
但是,如果我点击任何其他place_area,它会给我错误的结果.... 需要帮助。
答案 0 :(得分:0)
您需要创建一个自定义对象,该对象包含同一对象中的ID和显示文本。然后组合框可以显示一个值,但您的程序可以使用另一个值。
实现此目的有两种基本方法:
创建自定义渲染器。请参阅:Combobox With Renderer
使用自定义对象的toString()方法。请参阅Combobox With Hidden Data
大多数人会建议渲染器方法更好,只是不要忘记KeySelectionManager。