Items selecionados[RESOLVIDO]

3 respostas
L

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);
			
			
		}
		
		
	}
}

3 Respostas

L

Na verdade galera, preciso saber apenas como eu pego os elementos selecionados de uma JCheckBox.

ferreira2006

Tem muitos JCheckBox na tela?

Se não … testa 1 por 1. tipo:

JCheckBox jcb1 = new JCheckBox();
JCheckBox jcb2 = new JCheckBox();
JCheckBox jcb3 = new JCheckBox();

Boolean a,b,c;

a = jcb1.isSelectd();
b = jcb2.isSelectd();
c = jcb3.isSelectd();
L

Blz, resolvido!

Coloquei um contador e armazenei apenas os is.selected = true dentro de uma lista.

Valeu.

Criado 29 de março de 2011
Ultima resposta 29 de mar. de 2011
Respostas 3
Participantes 2