【发布时间】:2020-05-28 23:07:11
【问题描述】:
我有一组复选框(多选),我想知道使用 ListSelectionListener 选择了哪些项目
Box box = new Box(BoxLayout.Y_AXIS);
foodBox = new JCheckBox("");
proteinBox = new JCheckBox("");
noLabelBox = new JCheckBox("");
aggregateBox = new JCheckBox("");
box.add(getLegendSpecificBox("FOOD", new Color(0, 255, 127), 0));
box.add(foodBox);
box.add(getLegendSpecificBox("PROTEIN", new Color(240, 230, 140), 0));
box.add(proteinBox);
box.add(getLegendSpecificBox("NO LABEL", new Color(220, 220, 220), 0));
box.add(noLabelBox);
box.add(getLegendSpecificBox("AGGREGATION", new Color(255, 140, 0), 0));
box.add(aggregateBox);
我有一个带有食物、蛋白质或聚集体标签的节点图。我想要实现的是当我检查食物复选框时,我用其他标签(蛋白质等)将节点变灰。但我也想允许多选,例如,当我选中食物复选框和蛋白质复选框时,它会使其他标签(聚合等)变灰,但食物和蛋白质保持原来的颜色。
我正在使用 ItemListener 并将其添加到每个复选框,但它不起作用,因为我无法检测到其他复选框也被选中。
你能帮我解决一下吗? ListSelectionListener 能解决问题吗?
【问题讨论】: