Olá bom dia!
Neste exemplo, alguém poderia me ajudar para pegar os items selecionados?
Já existe uma função que pega o número de itens selecionados, mas preciso saber quais são, tipo: foi selecionada a opção 3 e 4
Obrigado.
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class CheckboxPanel extends JPanel {
public static void main(final String[] args) {
final JFrame frm = new JFrame();
final List<String> list = new LinkedList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
frm.add(new JScrollPane(new CheckboxPanel(list, 2)));
frm.setVisible(true);
}
static CheckBoxGroup group;
public CheckboxPanel(final List<? extends Serializable> data,
final int limit) {
this.setModel(data, limit);
}
static public Integer[] getSelectedOptions() {
final List<Integer> list = new LinkedList<Integer>();
int counter = 0;
for (final JCheckBox c : group.getSet()) {
if (c.isSelected()) {
list.add(++counter);
}
}
return list.toArray(new Integer[list.size()]);
}
public void setModel(final List<? extends Serializable> data,
final int limit) {
this.removeAll();
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
this.group = new CheckBoxGroup(limit);
for (final Serializable s : data) {
final JCheckBox jCheckBox = new JCheckBox(s.toString());
this.add(jCheckBox);
this.group.add(jCheckBox);
jCheckBox.addActionListener(this.group);
}
}
}