Ya hemos hablado que los JCombobox permiten definir listas de selección, siendo muy útiles cuando queremos mostrar diferentes opciones o información de nuestra base de datos, esta se mantendrá oculta hasta que se despliega el componente...
El Ejemplo.
Con este ejemplo tan solo mostraré como crearlo y como asignarle valores directamente, esto lo podemos realizar mediante 2 formas, inicialmente crearemos la clase principal que contiene el método main y luego iremos viendo el paso a paso en la construcción del combo.Clase Principal
Esta clase tan solo se encargará de llamar a la ventana con el combo...public class Principal {
public static void main(String[] args) {
VentanaPrincipal miVentana=new VentanaPrincipal();
miVentana.setVisible(true);
}
}
Clase VentanaPrincipal.
Esta clase corresponde a la ventana de nuestro sistema, tan solo cuenta con 2 componentes, el JComboBox y un JLabel el que nos mostrará cual fue la opción seleccionada.Al ejecutar nuestro sistema tan solo veremos la ventana con un combo vacio y un texto en pantalla, ahora veamos las 2 formas que podemos usar para el llenado de los items
Forma 1.
La primer forma es muy común cuando usamos una paleta de componentes, pues estas nos auto generan el código necesario para llenar nuestro combo
Para hacerlo debemos importar DefaultComboBoxModel...
import javax.swing.DefaultComboBoxModel;
posteriormente creamos las opciones de la siguiente manera.
combo1.setModel(new DefaultComboBoxModel<>(new String[]{"Seleccione","Opcion1","Opcion2"}));
como vemos podemos agregar los items directamente, o tambien dependiendo de la cantidad podriamos generar un arreglo de valores y asignarlo en los parentesis, remplazando todo desde el new String...
String arregloItems[]=new String[]{"Seleccione","Opcion1","Opcion2"};
combo1.setModel(new DefaultComboBoxModel<>(arregloItems));
Independiente de la forma el resultado será el mismo, puedes verificarlo ejecutando tu aplicación.
Forma 2.
Esta segunda forma a mi parecer es la mas simple y fácil de entender, ya que tan solo debemos utilizar el método additem() que nos provee el componente, comentamos la forma anterior y agregamos lo siguiente.
combo1.addItem("Seleccione");
combo1.addItem("Opcion 1");
combo1.addItem("Opcion 2");
combo1.addItem("Opcion 3");
combo1.addItem("Opcion 4");
combo1.setSelectedIndex(3);
Adicionalmente el uso de el método addItem() nos da mayor libertad para agregar elementos de forma dinámica, por ejemplo en un ciclo cuando obtenemos datos de nuestra base de datos...
Por ultimo podemos implementar la interface ActionListener para reconocer cuando seleccionamos una opción..... al final debemos tener algo así:
import java.awt.event.ActionEvent;Notemos que se usa el método setSelectedIndex(3) esto permitirá cargar el combo con el valor definido por el indice 3, mostrando así la "Opcion 3", si quisiéramos que se mostrara la palabra "Seleccione" entonces el parámetro enviado debería ser 0...
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class VentanaPrincipal extends JFrame implements ActionListener{
JComboBox combo1;
JLabel lblMsj;
public VentanaPrincipal() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(219, 200);
getContentPane().setLayout(null);
setLocationRelativeTo(null);
iniciarComponentes();
}
private void iniciarComponentes() {
lblMsj=new JLabel();
lblMsj.setText("Selección: ");
lblMsj.setBounds(29, 100, 180, 20);
combo1=new JComboBox();
combo1.setBounds(29, 35, 148, 20);
//FORMA 1
//String arregloItems[]=new String[]{"Seleccione","Opcion1","Opcion2"};
//combo1.setModel(new DefaultComboBoxModel<>(arregloItems));
//FORMA 2
combo1.addItem("Seleccione");
combo1.addItem("Opcion 1");
combo1.addItem("Opcion 2");
combo1.addItem("Opcion 3");
combo1.addItem("Opcion 4");
combo1.setSelectedIndex(3);
add(combo1);
add(lblMsj);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==combo1) {
lblMsj.setText(combo1.getSelectedIndex()+" - "+combo1.getSelectedItem());
}
}
}
//
Y listo, si ejecutamos nuestra aplicación veremos el funcionamiento del JComboBox, en la próxima entrada veremos algo similar pero obteniendo la información desde una Base de Datos....un saludo y espero que les pueda servir.
También te podría Interesar.
- Que son las convenciones de Código en Java
- Como Importar Proyectos Eclipse en Netbeans
- Redimensionar imagen en Java
- Componentes de Texto.
- Componentes Atomicos Java Swing
- Componentes Java Swing
- Que es Java Swing?
- Instalación del servidor de aplicaciones JBoss
- Instalación Apache ANT
- Conceptos Básicos de Programación Orientada a Objetos.
¿Hay algo que quieras anexar o comentar sobre esta entrada? no dudes en hacerlo.....y si te gustó...... te invito a compartir y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)