我有三个jcombobox,其中都有受尊重的数据,发票ID,发票日期和发票金额。这三个人都有动作监听器,将它们发送给一个班级。在课堂上我运行一个开关盒,看看哪个组合框发生了变化。从那里我得到所选项目并将其他两个设置为所选项目。 e.g。
SET NAMES utf8
我遇到的问题是,如果金额相同,则选择具有该金额的第一个索引。我该如何解决这个问题?
答案 0 :(得分:0)
问题在于,即使您致电setSelectedItem
,JComboBox也会在内部使用setSelectedIndex
。选择equals
的第一项。
你可以为你的金额字段使用一个对象包装器(我想它是一个双重的)来处理这个问题。
答案 1 :(得分:0)
这将是我对KDM建议的解释。
JComboBox<Object> idBox = new JComboBox<>();
然后在添加对象时:
idBox.add(new Object(){ public String toString(){ return invoice.id + "";}});
我认为更好的解决方案是使用自定义渲染器并使用JComboBox,这样您的发票就会存储在每个框中,只是以不同的方式呈现,即返回相应的字符串。