Baixe o app para aproveitar ainda mais
Prévia do material em texto
JComboBox É um componente que combina um botão ou um campo de edição com uma caixa de lista tipo drop-down. As principais características são: Podemos editar ou não seu texto; Definimos a lista de elementos da lista; Principais Contrutores JComboBox caixa = new JCheckBox(); JComboBox caixa = new JCheckBox(Object[]); // Os objetos para lista JComboBox caixa = new JCheckBox(Vector); // Um vetor de Strings Adicionar itens caixa.addItem(Object); Métodos //define qual item já vem selecionado caixa.setSelectedIndex(int); //indice caixa.setSelectedItem(Object); //item //retorna o indice do item que está selecionado int n = caixa.getSelectedIndex(); //retorna o item que está selecionado Object n = caixa.getSelectedItem(); //define se será editável ou não caixa.setEditable(boolean); //remove todos os elementos da lista Caixa.removeAllItens(); Vamos agora implementar um programa para exercitar os eventos e trabalhar com um comboBox não editável. Este programa deverá criar uma lista de esportes no qual o usuário deverá escolher os que ele gosta de praticar. Os esportes escolhidos deverão ir para a lista de esportes. Além disso, vamos criar um mecanismo para incluir novos esportes na lista. Este mecanismo será controlado por um checkbox, que habilita ou desabilita função. Ao apertarmos o botão <Inclui na Lista>, o texto será incluído na lista e a caixa de texto limpa. Abaixo, a figura com o que queremos fazer: package projaula5pooead; import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; public class EventoComboBox extends javax.swing.JFrame { private javax.swing.ComboBoxModel listaCombo; private javax.swing.DefaultListModel listaTexto; /** Creates new form EventoComboBox */ public EventoComboBox() { super("Trabalhando com ComboBox"); inicializar(); } private void inicializar() { String[] esportes = {"", "Natação", "Tenis", "Futebol", "Voleibol"}; jLabel1 = new javax.swing.JLabel(); jComboBox1 = new javax.swing.JComboBox(esportes); jScrollPane1 = new javax.swing.JScrollPane(); jList1 = new javax.swing.JList(); jButton1 = new javax.swing.JButton(); listaTexto = new javax.swing.DefaultListModel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jButton2 = new javax.swing.JButton(); jCheckBox1 = new javax.swing.JCheckBox(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jComboBox1.addItem("Basquete"); jComboBox1.setEditable(false); jList1.setModel(listaTexto); jScrollPane1.setViewportView(jList1); jLabel1.setText("Escolha o Esporte"); jButton1.setText("Inclui >"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { trataEventoBtIncluiActionPerformed(evt); } }); jCheckBox1.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(ItemEvent e) { trataMudancaEstado(e); } }); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { trataEventoBtIncluiListaActionPerformed(evt); } }); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel2.setText("Mensagens"); jLabel3.setText("Novo Esporte"); jLabel3.setEnabled(false); jTextField1.setEnabled(false); jButton2.setText("Inclui na Lista"); jButton2.setEnabled(false); jCheckBox1.setText("Habilita Inclusão de novos Esportes"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI NG) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI NG) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI NG, false) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 168, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1) .addGap(34, 34, 34)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(64, 64, 64))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILI NG) .addComponent(jCheckBox1) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(68, 68, 68) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(27, 27, 27)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(33, 33, 33) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI NG) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI NE).addComponent(jLabel1) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addComponent(jButton1) .addGap(18, 18, 18) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jCheckBox1))) .addGap(30, 30, 30) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI NE) .addComponent(jLabel3) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton2)) .addContainerGap(82, Short.MAX_VALUE)) ); pack(); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new EventoComboBox().setVisible(true); } }); } private void trataEventoBtIncluiActionPerformed(ActionEvent evt) { // listaTexto.addElement(jComboBox1.getItemAt(jComboBox1.getItemCount())); jLabel2.setText(jComboBox1.getSelectedItem().toString()); listaTexto.addElement(jComboBox1.getSelectedItem()); } private void trataMudancaEstado(ItemEvent e) { Object[] i = jCheckBox1.getSelectedObjects(); if(i!=null) habilitaInclusao(true); else habilitaInclusao(false); } private void habilitaInclusao(boolean b) { jTextField1.setEnabled(b); jLabel3.setEnabled(b); jButton2.setEnabled(b); } private void trataEventoBtIncluiListaActionPerformed(ActionEvent evt) { if(jTextField1.getText().equals("")) jLabel2.setText("Caixa Vazia"); else { jComboBox1.addItem(jTextField1.getText()); jTextField1.setText(""); } } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JList jList1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jTextField1; // End of variables declaration }
Compartilhar