gpt4 book ai didi

java - 如何读取 Jlist 中的复选框状态

转载 作者:行者123 更新时间:2023-12-01 12:53:42 25 4
gpt4 key购买 nike

我正在开发一个 GUI,其中我已将一些复选框包含到 Jlist 中,但我无法读取它们的状态。下面是我的代码示例

final JScrollPane scrollPaneWat = new JScrollPane();
scrollPaneWat.setBounds(526, 248, 152, 140);
Pane.add(scrollPaneWat);
scrollPaneWat.hide();

@SuppressWarnings("unchecked")
final JList<?> list = new JList(new CheckListRendererClasses[] {
new CheckListRendererClasses("a"),
new CheckListRendererClasses("b"),
new CheckListRendererClasses("c"),
new CheckListRendererClasses("d"),
new CheckListRendererClasses("e"),
new CheckListRendererClasses("f"),
new CheckListRendererClasses("g"),
scrollPaneWat.setViewportView(list);
list.setBackground(Color.LIGHT_GRAY);
list.setFont(new Font("Times New Roman", Font.ITALIC, 14));

list.setCellRenderer(new CheckListRenderer());
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent event){
JList list = (JList) event.getSource();
int index = list.locationToIndex(event.getPoint());
CheckListRendererClasses item = (CheckListRendererClasses)
list.getModel().getElementAt(index);
item.setSelected(! item.isSelected());
list.repaint(list.getCellBounds(index, index));
}
});

我已经尝试过这个:

for (int i = 0; i < 7; i++) {

Object sel = list.getModel().getElementAt(i);

System.out.print(sel.toString());
}

我得到了 a, b, c, d, e, f, g

另外,当我尝试这个时:

System.out.println(list.isSelectedIndex(1));

如果我勾选复选框 a,它会打印 true。但是,如果勾选了复选框 a 并且我再勾选了一个(所以现在我勾选了复选框 a 和 c),它将返回 false。

就像它保留了我最后的选择。

我想要的是,例如,如果我勾选了 a、c、d 复选框,以便能够进行 for 循环,并每次查看值 i 的复选框是否被勾选。

谢谢

最佳答案

ListSelectionModel.SINGLE_SELECTION 更改为 MULTIPLE_INTERVAL_SELECTION 以允许一次选择多个选项。

关于java - 如何读取 Jlist 中的复选框状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24034340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com