En swing disponemos de controles de lista en la cual podemos añadir elementos. Estas listas son "JList" y "JComboBox".
Dichos controles, se suministran a traves de los objetos "DefaultListModel" y "DefaultComboBoxModel". Ahora veremos la funcion de los dos controles, empecemos.
Control JList
import javax.swing.*;
import java.awt.event.*;
public class Listas extends JFrame implements ActionListener{
JTextField cmpNombre;
JButton btnAgregar;
DefaultListModel dlm;
JList lista;
public Listas(){
this("Controles",0,0,300,300);
}
public Listas(String titulo, int x, int y, int w, int h){
super(titulo);
this.getContentPane().setLayout(null);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(x,y,w,h);
this.setVisible(true);
JLabel lblNombre = new JLabel("Nombre:");
lblNombre.setBounds(10,10,80,20);
this.getContentPane().add(lblNombre);
cmpNombre = new JTextField();
cmpNombre.setBounds(100,10,150,20);
this.getContentPane().add(cmpNombre);
btnAgregar = new JButton("Agregar");
btnAgregar.setBounds(100,50,80,30);
this.getContentPane().add(btnAgregar);
dlm = new DefaultListModel();
lista = new JList(dlm);
lista.setBounds(40,100,130,100);
this.getContentPane().add(lista);
btnAgregar.addActionListener(this);
paintComponents(getGraphics());
}
public void actionPerformed(ActionEvent event){
dlm.addElement(cmpNombre.getText());
}
public static void main(String[]args){
Listas l = new Listas();
}
}
Este tipo de listas, conllevan una serie de metodos, pero que en este mini-curso no veremos.
A continuacion veremos la otra forma de crear listas, en este caso se tratara de una lista desplegable.
Control JComboBox
import javax.swing.*;
import java.awt.event.*;
public class Listas extends JFrame implements ActionListener{
JTextField cmpNombre;
JButton btnAgregar;
DefaultComboBoxModel cbm;
JComboBox combo;
public Listas(){
this("Controles",0,0,300,300);
}
public Listas(String titulo, int x, int y, int w, int h){
super(titulo);
this.getContentPane().setLayout(null);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setBounds(x,y,w,h);
this.setVisible(true);
JLabel lblNombre = new JLabel("Nombre:");
lblNombre.setBounds(10,10,80,20);
this.getContentPane().add(lblNombre);
cmpNombre = new JTextField();
cmpNombre.setBounds(100,10,150,20);
this.getContentPane().add(cmpNombre);
btnAgregar = new JButton("Agregar");
btnAgregar.setBounds(100,50,80,30);
this.getContentPane().add(btnAgregar);
cbm = new DefaultComboBoxModel();
combo = new JComboBox(cbm);
combo.setBounds(40,100,130,20);
this.getContentPane().add(combo);
btnAgregar.addActionListener(this);
paintComponents(getGraphics());
}
public void actionPerformed(ActionEvent event){
cbm.addElement(cmpNombre.getText());
}
public static void main(String[]args){
Listas l = new Listas();
}
}
Lo mismo que en la otra lista, tambien conlleva una serie de metodos que no explicaremos en este mini-curso. De todas formas, igualmente nombrare alguno de esos metodos, pero que no explicare con profundidad. Dichos metodos son los siguientes:
Con el JList:
getSelectedIndex() Devuelve el indice del elemento que se ha seleccionado
getSelectedValue() Devuelve el elemento en si seleccionado pero tipo Objeto
Con el JComboBox:
getSelectedIndex() Devuelve el indice del elemento que se ha seleccionado
getSelectedItem() Devuelve el objeto que esta seleccionado