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

HashMap<CauseCategory, ArrayList<Cause>> data;


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

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

我将这个HashMap馈入到我的GUI类中,该类具有两个JComboBoxes(原因类别+原因描述)。

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

编辑:想到这样的哈希表可能会更简单:

HashMap<String, ArrayList<String>> data;

最佳答案

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

与往常一样:link to the swing tutorial

关于java - 绑定(bind)两个JComboBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13903995/

10-09 03:48