【发布时间】:2014-03-21 02:23:47
【问题描述】:
我正在尝试设计一个 GUI,但我确实陷入了某个问题,其中涉及使用 JComboBox 更改 JLabel 中的数据,但问题是 JLabel 中的数据来自组合框所需的对象数据。
示例:每个语言环境中包含对象的假设数组列表:
ArrayList<Animals> FarmAnimals = new ArrayList<Animals>();
FarmAnimals.add(new Animals("Cows", "Black"));
FarmAnimals.add(new Animals("Pigs", "Pink");
FarmAnimals.add(new Animals("Sheep", "White"));
现在,我想用“Cows”、“Pigs”和“Sheep”来填充 JComboBox,这很容易通过创建一个值的字符串数组来完成。问题是,当我假设选择“奶牛”时,我希望颜色 JLabel 在选择时分别显示“黑色”、“粉红色”和“白色”:理想情况下来自数组中的对象数据(以防万一我有更多关于奶牛的数据或任何类似爪子大小或动物噪音响度的数据,我想稍后输入)。
有没有办法让 ItemListener 做到这一点,或者至少有一个教程展示了如何直接影响与 JComboBox 中的内容相关联的对象中的 JLabel 数据?还是我只是愚蠢而有更好的方法?谢谢。
这可能是一个更好的例子:
http://pokemonshowdown.com/damagecalc/
请注意,当您更改 EV 或 IV 时,或者如果您更改口袋妖怪,侧面的统计数据会直接根据所选口袋妖怪以及 EV 和 IV 输入的变化而改变。我希望在我正在制作的 GUI 中出现这种行为(统计数据直接根据输入进行更改,我假设这些输入直接连接到为每个 Pokey 存储的对象数据。)但我似乎无法模仿它。
【问题讨论】:
标签: java object user-interface arraylist