7.6 COMBOBOX

 

Hola, ¿qué hay? Los ComboBox, son una lista de opciones que permite seleccionar una de las opciones.



Para utilizar los ComboBox se utiliza la clase JComboBox que dispone de dos métodos: addItem() y getSelectedItem(). El método addItem() nos permite añadir elementos al desplegables y getSelectedItem() nos devuelve el elemento seleccionado. Como siempre lo vamos a ver sobre una práctica cuyo código inicial va a ser el siguiente:

package swing;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

 

public class ComboBox {

 

       public static void main(String[] args) {

           

             MarcoCombo mimarco = new MarcoCombo();

           

             mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

       }

 

}

 class MarcoCombo extends JFrame {

     

       public MarcoCombo(){

           

             setVisible(true);

           

             setBounds(550, 300, 550, 400);

           

             LaminaCombo milamina = new LaminaCombo();

           

             add(milamina);

 

           

       }

}

 class LaminaCombo extends JPanel {

       

        public LaminaCombo() {

             

        }

       

       

     

 } 

Si probamos nos ejecuta una ventana que no contiene nada, lo que vamos a hacer es colocar un texto en el centro y en la parte superior un ComBox que según la selección que hagamos nos cambiará el tipo de texto que hay en la etiqueta.



Vamos a empezar creando los campos de clase que vamos a utilizar al final del código antes de la última llave de cierre:

private JLabel texto;

 

private JComboBox micombo;

La etiqueta de tipo JLabel donde irá el texto y el ComboBox al que hemos llamado micombo. Nos situamos dentro del constructor de la lámina y establecemos el layout que va a tener:

setLayout(new BorderLayout());

Establecemos el texto:

texto=new JLabel("Curso completo de Java");

Establecemos las características del texto:

texto.setFont(new Font("Serif", Font.PLAIN, 18));

Añadimos el texto en la lámina:

add(texto, BorderLayout.CENTER);

Nos toca ahora crear el combo que va a ir en una segunda lámina, por lo que creamos una segunda lámina:

JPanel lamina_norte = new JPanel();

Creamos el ComboBox, os recomiendo ir a la API de Java para conocer más este objeto y ver que tiene sobrecarga de constructores, nosotros en esta práctica vamos a utilizar el más básico, el que no tiene nada por parámetro. Creamos el ComboBox con el constructor por defecto:

micombo = new JComboBox();

Añadimos elementos al combo:

            micombo.addItem("Serif");

           

            micombo.addItem("SansSerif");

           

            micombo.addItem("Monospaced");

           

            micombo.addItem("Dialog");

Agregamos el combo a la lámina norte y añadirla a la lámina principal:

            lamina_norte.add(micombo);

           

            add(lamina_norte, BorderLayout.NORTH);

Probamos:



Vemos que se nos ha añadido la etiqueta del texto en la parte central y en la parte superior el comboBox. Si nos fijamos en el comboBox podemos hacerlo editable, es decir, por defecto, el usuario no puede escribir nada en él, pero si lo hacemos editable podemos hacer que el usuario escriba en el combo directamente un elemento. Esto se hace con el método setEditable pasándole como parámetro true, después de crear el combo:

micombo.setEditable(true);

Nos falta darle funcionalidad a la aplicación, nos creamos una clase interna que implementa la interfaz ActionListener que nos obliga a declarar el método actionPerformed:

   private class Evento_combo implements ActionListener{

 

                  @Override

                  public void actionPerformed(ActionEvent e) {

                        // TODO Auto-generated method stub

                       

                  }

           

           

        }

Dentro del método tenemos que indicar que queremos que haga, dependiendo del elemento que seleccionemos en el combo el texto cambiará el tipo de letra.

texto.setFont(new Font((String)micombo.getSelectedItem(), Font.PLAIN, 18));

Tenemos que recurrir al casting ya que el método getSelectedItem devuelve un Object y el constructor de Font me pide un String por lo que tenemos que convertirlo a un String.

Volvemos al constructor de la lámina y ponemos el combo a la escucha, justo antes de añadir el combo a la lámina norte, instanciamos la clase Evento_combo:

            Evento_combo mievento = new Evento_combo();

 

            micombo.addActionListener(mievento);

Probamos, si elegimos cualquier elemento del combo nos cambia el tipo de letra:





Como hemos hecho el combo editable si escribimos un tipo de letra que no esté en el combo también nos lo cambia:



Os espero en el próximo post me podéis hacer llegar vuestras dudas o sugerencias a amizba@gmail.com o a través de los comentarios del blog. Hasta pronto!

7.5 BOTONES DE RADIO (JRadioButton) << >> 7.7 JSLIDER



No hay comentarios:

Publicar un comentario