我有一个看起来像这样的HashMap:
HashMap<CauseCategory, ArrayList<Cause>> data;
CauseCategory和Cause只是包含一个字符串实例字段的类,由构造函数或setter方法设置(如果需要)。现在,系统从数据库中获取了一堆原因类别,并且对于每个原因类别,都有许多与之相关的原因。
假设我们有一个“技术”原因类别,它会有多个与之相关的原因,例如“包装问题”,“处理错误”,“错误计算错误”等。
我为这个HashMap提供了我的GUI类,它有两个JComboBox(原因类别+原因描述)。
如何绑定第一个组合框(类别),以便当我从该列表中选择一个项目时,它只显示第二个组合框中与之关联的原因(原因说明)?
编辑:想到这样的hashmap可能更简单:
HashMap<String, ArrayList<String>> data;
答案 0 :(得分:3)
将ActionListener添加到第一个组合框。每次选择更改时,都会触发一个ActionEvent,从而调用ActionListener。从侦听器中,从组合框中获取新选择的类别,然后从Map获取关联原因,并更改第二个组合框中显示的项目。
像往常一样:link to the swing tutorial。