[英]How to read Checkboxes status in Jlist
我正在開發一個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));
如果我勾選Checkbox a,它會打印true。 但是,如果Checkbox a被勾選,而我又勾選了一個(所以現在我勾選了Checkbox a和c),它將返回false。
就像它是我的最后選擇。
我想要的是例如是否勾選了a,c,d復選框,以便能夠進行for循環,並每次查看是否勾選了值i的復選框。
謝謝
將ListSelectionModel.SINGLE_SELECTION
更改為MULTIPLE_INTERVAL_SELECTION
以一次允許多個選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.