绑定两个JComboBox

时间:2012-12-16 17:59:05

标签: java swing binding jcombobox itemlistener

我有一个看起来像这样的HashMap:

HashMap<CauseCategory, ArrayList<Cause>> data;

CauseCategory和Cause只是包含一个字符串实例字段的类,由构造函数或setter方法设置(如果需要)。现在,系统从数据库中获取了一堆原因类别,并且对于每个原因类别,都有许多与之相关的原因。

假设我们有一个“技术”原因类别,它会有多个与之相关的原因,例如“包装问题”,“处理错误”,“错误计算错误”等。

我为这个HashMap提供了我的GUI类,它有两个JComboBox(原因类别+原因描述)。

如何绑定第一个组合框(类别),以便当我从该列表中选择一个项目时,它只显示第二个组合框中与之关联的原因(原因说明)?

编辑:想到这样的hashmap可能更简单:

HashMap<String, ArrayList<String>> data;

1 个答案:

答案 0 :(得分:3)

将ActionListener添加到第一个组合框。每次选择更改时,都会触发一个ActionEvent,从而调用ActionListener。从侦听器中,从组合框中获取新选择的类别,然后从Map获取关联原因,并更改第二个组合框中显示的项目。

像往常一样:link to the swing tutorial