JComboBox es parte del paquete Java Swing. JComboBox hereda la clase JComponent. JComboBox muestra un menú emergente que muestra una lista y el usuario puede seleccionar una opción de esa lista especificada. JComboBox puede ser editable o de solo lectura según la elección del programador.
Los constructores de JComboBox son:
- JComboBox() : crea un nuevo JComboBox vacío.
- JComboBox(ComboBoxModel M) : crea un nuevo JComboBox con elementos del ComboBoxModel especificado
- JComboBox(E [ ] i) : crea un nuevo JComboBox con elementos de la array especificada.
- JComboBox (elementos vectoriales) : crea un nuevo JComboBox con elementos del vector especificado
Los métodos comúnmente utilizados son:
- addItem(E item) : agrega el elemento al JComboBox
- addItemListener( ItemListener l) : agrega un ItemListener a JComboBox
- getItemAt(int i) : devuelve el elemento en el índice i
- getItemCount() : devuelve el número de elementos de la lista
- getSelectedItem() : devuelve el elemento seleccionado
- removeItemAt(int i) : elimina el elemento en el índice i
- setEditable(booleano b) : el booleano b determina si el cuadro combinado es editable o no. Si se pasa verdadero, entonces el cuadro combinado es editable o viceversa.
- setSelectedIndex(int i) : selecciona el elemento de JComboBox en el índice i.
- showPopup() :hace que el cuadro combinado muestre su ventana emergente.
- setUI(ComboBoxUI ui) : establece el objeto L&F que representa este componente.
- setSelectedItem(Object a) : establece el elemento seleccionado en el área de visualización del cuadro combinado en el objeto del argumento.
- setSelectedIndex(int a) : selecciona el elemento en el índice anIndex.
- setPopupVisible(boolean v) : establece la visibilidad de la ventana emergente.
- setModel(ComboBoxModel a) : establece el modelo de datos que utiliza JComboBox para obtener la lista de elementos.
- setMaximumRowCount(int count) : establece el número máximo de filas que muestra JComboBox.
- setEnabled(booleano b) : habilita el cuadro combinado para que se puedan seleccionar elementos.
- removeItem(Object anObject) : elimina un elemento de la lista de elementos.
- removeAllItems() : elimina todos los elementos de la lista de elementos.
- removeActionListener(ActionListener l) : elimina un ActionListener.
- isPopupVisible() : determina la visibilidad de la ventana emergente.
- addPopupMenuListener(PopupMenuListener l) : agrega un detector PopupMenu que escuchará los mensajes de notificación de la parte emergente del cuadro combinado.
- getActionCommand() : devuelve el comando de acción que se incluye en el evento enviado a los oyentes de acción.
- getEditor() : devuelve el editor utilizado para pintar y editar el elemento seleccionado en el campo JComboBox.
- getItemCount() : devuelve el número de elementos de la lista.
- getItemListeners() : devuelve una array de todos los ItemListeners agregados a este JComboBox con addItemListener().
- createDefaultKeySelectionManager() : devuelve una instancia del administrador de selección de claves predeterminado.
- fireItemStateChanged(ItemEvent e) : notifica a todos los oyentes que han registrado interés para recibir notificaciones sobre este tipo de evento.
- firePopupMenuCanceled() : notifica a PopupMenuListeners que la parte emergente del cuadro combinado ha sido cancelada.
- firePopupMenuWillBecomeInvisible() : notifica a PopupMenuListeners que la parte emergente del cuadro combinado se ha vuelto invisible.
- firePopupMenuWillBecomeVisible() : notifica a PopupMenuListeners que la parte emergente del cuadro combinado se volverá visible.
- setEditor(ComboBoxEditor a) : establece el editor utilizado para pintar y editar el elemento seleccionado en el campo JComboBox.
- setActionCommand(String a) : establece el comando de acción que debe incluirse en el evento enviado a actionListeners.
- getUI() : devuelve el objeto de apariencia que representa este componente.
- paramString() : devuelve una representación de string de este JComboBox.
- getUIClassID() : devuelve el nombre de la clase Look and feel que representa este componente.
- getAccessibleContext() : obtiene el AccessibleContext asociado con este JComboBox
Los siguientes programas ilustrarán el uso de JComboBox
1. Programa para crear un JComboBox simple y agregarle elementos.
Java
// Java Program to create a simple JComboBox // and add elements to it import java.awt.event.*; import java.awt.*; import javax.swing.*; class solve extends JFrame implements ItemListener { // frame static JFrame f; // label static JLabel l, l1; // combobox static JComboBox c1; // main class public static void main(String[] args) { // create a new frame f = new JFrame("frame"); // create a object solve s = new solve(); // set layout of frame f.setLayout(new FlowLayout()); // array of string containing cities String s1[] = { "Jalpaiguri", "Mumbai", "Noida", "Kolkata", "New Delhi" }; // create checkbox c1 = new JComboBox(s1); // add ItemListener c1.addItemListener(s); // create labels l = new JLabel("select your city "); l1 = new JLabel("Jalpaiguri selected"); // set color of text l.setForeground(Color.red); l1.setForeground(Color.blue); // create a new panel JPanel p = new JPanel(); p.add(l); // add combobox to panel p.add(c1); p.add(l1); // add panel to frame f.add(p); // set the size of frame f.setSize(400, 300); f.show(); } public void itemStateChanged(ItemEvent e) { // if the state combobox is changed if (e.getSource() == c1) { l1.setText(c1.getSelectedItem() + " selected"); } } }
Producción :
2. Programa para crear dos casillas de verificación, una editable y otra de solo lectura
Java
// Java Program to create two checkbox // one editable and other read only import java.awt.event.*; import java.awt.*; import javax.swing.*; class solve extends JFrame implements ItemListener { // frame static JFrame f; // label static JLabel l, l1, l3, l4; // combobox static JComboBox c1, c2; // main class public static void main(String[] args) { // create a new frame f = new JFrame("frame"); // create a object solve s = new solve(); // array of string containing cities String s1[] = { "Jalpaiguri", "Mumbai", "Noida", "Kolkata", "New Delhi" }; String s2[] = { "male", "female", "others" }; // create checkbox c1 = new JComboBox(s1); c2 = new JComboBox(s2); // set Kolkata and male as selected items // using setSelectedIndex c1.setSelectedIndex(3); c2.setSelectedIndex(0); // add ItemListener c1.addItemListener(s); c2.addItemListener(s); // set the checkbox as editable c1.setEditable(true); // create labels l = new JLabel("select your city "); l1 = new JLabel("Jalpaiguri selected"); l3 = new JLabel("select your gender "); l4 = new JLabel("Male selected"); // set color of text l.setForeground(Color.red); l1.setForeground(Color.blue); l3.setForeground(Color.red); l4.setForeground(Color.blue); // create a new panel JPanel p = new JPanel(); p.add(l); // add combobox to panel p.add(c1); p.add(l1); p.add(l3); // add combobox to panel p.add(c2); p.add(l4); // set a layout for panel p.setLayout(new FlowLayout()); // add panel to frame f.add(p); // set the size of frame f.setSize(400, 400); f.show(); } public void itemStateChanged(ItemEvent e) { // if the state combobox 1is changed if (e.getSource() == c1) { l1.setText(c1.getSelectedItem() + " selected"); } // if state of combobox 2 is changed else l4.setText(c2.getSelectedItem() + " selected"); } }
Producción :
3. Programa para crear una casilla de verificación y agregar o quitar elementos de ella.
Java
// Java Program to create a checkbox // and add or remove items from it import java.awt.event.*; import java.awt.*; import javax.swing.*; class solve11 extends JFrame implements ItemListener, ActionListener { // frame static JFrame f; // label static JLabel l, l1; // combobox static JComboBox c1; // textfield to add and delete items static JTextField tf; // main class public static void main(String[] args) { // create a new frame f = new JFrame("frame"); // create a object solve11 s = new solve11(); // set layout of frame f.setLayout(new FlowLayout()); // array of string containing cities String s1[] = { "Jalpaiguri", "Mumbai", "Noida", "Kolkata", "New Delhi" }; // create checkbox c1 = new JComboBox(s1); // create textfield tf = new JTextField(16); // create add and remove buttons JButton b = new JButton("ADD"); JButton b1 = new JButton("REMOVE"); // add action listener b.addActionListener(s); b1.addActionListener(s); // add ItemListener c1.addItemListener(s); // create labels l = new JLabel("select your city "); l1 = new JLabel("Jalpaiguri selected"); // set color of text l.setForeground(Color.red); l1.setForeground(Color.blue); // create a new panel JPanel p = new JPanel(); p.add(l); // add combobox to panel p.add(c1); p.add(l1); p.add(tf); p.add(b); p.add(b1); f.setLayout(new FlowLayout()); // add panel to frame f.add(p); // set the size of frame f.setSize(700, 200); f.show(); } // if button is pressed public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals("ADD")) { c1.addItem(tf.getText()); } else { c1.removeItem(tf.getText()); } } public void itemStateChanged(ItemEvent e) { // if the state combobox is changed if (e.getSource() == c1) { l1.setText(c1.getSelectedItem() + " selected"); } } }
Producción :
Nota: es posible que los programas anteriores no se ejecuten en un compilador en línea; use un IDE sin conexión
Publicación traducida automáticamente
Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA