Você está aqui: Java ::: Classes e Componentes ::: JList |
Exemplo completo de como adicionar JCheckBoxes como itens de uma JList e retornar os itens marcadosQuantidade de visualizações: 12213 vezes |
/* Este exemplo mostra como criar uma JList contendo JCheckBoxes. Aprenda a marcar os itens e obter quais itens estão marcados. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class Estudos extends JFrame{ JList lista; public Estudos() { super("A classe JList"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria a JList lista = new JList(); // Define o renderizador de células lista.setCellRenderer(new CheckBoxCellRenderer()); // Define os valores da lista Object[] cbArray = new Object[4]; cbArray[0] = new JCheckBox("Goiânia"); cbArray[1] = new JCheckBox("Brasília"); cbArray[2] = new JCheckBox("Barra do Garças"); cbArray[3] = new JCheckBox("Curitiba"); // Atribue os itens à lista lista.setListData(cbArray); // Define a seleção única para a lista lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Aqui nós permitimos que as checkboxes sejam marcadas // ou desmarcadas com a barra de espaço lista.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode() == KeyEvent.VK_SPACE){ int index = lista.getSelectedIndex(); if(index != -1){ JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(index); checkbox.setSelected(!checkbox.isSelected()); repaint(); } } } }); // Aqui nós permitimos que as checkboxes sejam marcadas // ou desmarcadas com o mouse lista.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int index = lista.locationToIndex(e.getPoint()); if(index != -1){ JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(index); checkbox.setSelected(!checkbox.isSelected()); repaint(); } } }); // Um botão que permite obter os itens marcados JButton btn = new JButton("Obter itens marcados"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String itens = ""; for(int i = 0; i < lista.getModel().getSize(); i++){ JCheckBox checkbox = (JCheckBox) lista.getModel().getElementAt(i); if(checkbox.isSelected()) itens += "Item com índice " + i + " está marcado\n"; else itens += "Item com índice " + i + " está desmarcado\n"; } JOptionPane.showMessageDialog(null, itens); } } ); // Adiciona a lista à janela c.add(new JScrollPane(lista)); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // Classe personalizada que permite que os itens // da lista sejam exibidos como JCheckBoxes class CheckBoxCellRenderer implements ListCellRenderer{ Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){ JCheckBox checkbox = (JCheckBox) value; checkbox.setBackground(isSelected ? list.getSelectionBackground() : list.getBackground()); checkbox.setForeground(isSelected ? list.getSelectionForeground() : list.getForeground()); checkbox.setEnabled(list.isEnabled()); checkbox.setFont(list.getFont()); checkbox.setFocusPainted(false); checkbox.setBorderPainted(true); checkbox.setBorder(isSelected ? UIManager.getBorder( "List.focusCellHighlightBorder") : noFocusBorder); return checkbox; } } |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |