Tutorial Java – JComboBox con Valores de una Tabla (Video)


Tutorial Java

Cómo lo hacen en Java

Al concluir la lectura de éste artículo y luego de terminar de ver el video comprenderás exactamente cómo utilizar un JComboBox mostrando valores provenientes de una Base de Datos, es decir de una tabla específica.

Si bien la Clase JComboBox del Java presente muchas formas de proveer la funcionalidad de recuperar información de otra tabla, para referenciarla con tu funcionalidad principal (abm o movimiento que estás haciendo), la que te voy a mostrar aquí consiste en la forma más básica y la utilizada por la mayoría de los Sistemas de Gestión.

A diferencia de la carga de un JComboBox con valores estáticos que te mostré la semana pasada, en éste video-tutorial también te muestro cómo hacer uso de la re-utilización de código, creando para ello tu propia Clase JComboBox (JComboBoxCiudad), que lo podrás utilizar sin límite para las demás funcionalidades que tengas que implementar, algo muy interesante. De hecho todos los controles JComboBox, JTextField, JButton que vayas a utilizar para tu aplicación deberían ser pensadas de esta forma.

Además de eso también te mostraré cómo re-implementar el método equals de la Clase Java Bean con el fin de mostrar un valor específico en el combobox cuando ella ya contiene valores cargados en la lista desplegable, sinceramente algo muy util que lo implementarás probablemente cuando tengas que recuperar y mostrar datos de un registro en el Formulario.

Así que sin más pre-ambulos, te dejo los videos para que los aproveches a tu manera:

Parte 1/2

Parte 2/2

Esta entrada fue publicada en Tutorial Java - Crear Aplicaciones Con Swing y etiquetada , , , , , , , , , , , , , . Guarda el enlace permanente.

26 respuestas a Tutorial Java – JComboBox con Valores de una Tabla (Video)

  1. Julian Buitrago dijo:

    Excelente viendo video, gracias!!

  2. Carlos Andrade dijo:

    EXCELENTE !!!!!!!!!
    Muchisimas gracias por compartir tus conocimientos.

  3. Luis Alfonso Gallego Murillo dijo:

    Profe, de nuevo Buenos Dias y mil y mil gracias por sus conocimientos, me gustaria saber que diferencias hay entre un eclise galileo y el helio; además me gustaria saber si este ejercicio lo realize bien porque en ciudad.java le tuve que agregar un corchete mas al fina para que funcionara, de otra parte estoy en la duda en este signo /, uste lo puso de la otra forma y no se como ponerlo así:

    package ejemplo.combobox;

    import java.awt.BorderLayout;

    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.List;
    import java.awt.Rectangle;
    import javax.swing.JButton;
    import java.awt.Dimension;

    public class ComboboxEstatico extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel jContentPane = null;
    private List list = null; // @jve:decl-index=0:visual-constraint=”635,230″
    private jComboCiudad jComboCiudad = null;
    private JButton jButton = null;
    private JButton jButton1 = null;
    /**
    * This is the default constructor
    */
    public ComboboxEstatico() {
    super();
    initialize();
    }

    /**
    * This method initializes this
    *
    * @return void
    */
    private void initialize() {
    this.setSize(396, 200);
    this.setContentPane(getJContentPane());
    this.setTitle(“ComboBoxEstatico”);
    }

    /**
    * This method initializes jContentPane
    *
    * @return javax.swing.JPanel
    */
    private JPanel getJContentPane() {
    if (jContentPane == null) {
    jContentPane = new JPanel();
    jContentPane.setLayout(null);
    jContentPane.add(getJComboCiudad(), null);
    jContentPane.add(getJButton(), null);
    jContentPane.add(getJButton1(), null);
    }
    return jContentPane;
    }

    /**
    * This method initializes list
    *
    * @return java.awt.List
    */
    private List getList() {
    if (list == null) {
    list = new List();
    }
    return list;
    }

    /**
    * This method initializes jComboCiudad
    *
    * @return ejemplo.combobox.jComboCiudad
    */
    private jComboCiudad getJComboCiudad() {
    if (jComboCiudad == null) {
    jComboCiudad = new jComboCiudad();
    jComboCiudad.setBounds(new Rectangle(11, 56, 258, 57));
    }
    return jComboCiudad;
    }

    /**
    * This method initializes jButton
    *
    * @return javax.swing.JButton
    */
    private JButton getJButton() {
    if (jButton == null) {
    jButton = new JButton();
    jButton.setBounds(new Rectangle(37, 119, 212, 43));
    jButton.setText(“Ver Valor y Descripción”);
    jButton.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
    System.out.println(“actionPerformed()”); // TODO Auto-generated Event stub actionPerformed()
    Ciudad ciu = (Ciudad)getJComboCiudad().getSelectedItem();
    JOptionPane.showMessageDialog(null, “Codigo : ” + ciu.getCodigo() + “/n Descripcion : ” + ciu.getDescripcion());
    }
    });
    }
    return jButton;
    }

    /**
    * This method initializes jButton1
    *
    * @return javax.swing.JButton
    */
    private JButton getJButton1() {
    if (jButton1 == null) {
    jButton1 = new JButton();
    jButton1.setBounds(new Rectangle(30, 14, 208, 33));
    jButton1.setText(“Asignar un valor al Combo”);
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
    System.out.println(“actionPerformed()”); // TODO Auto-generated Event stub actionPerformed()
    Ciudad c = new Ciudad();
    c.setCodigo(2);
    jComboCiudad.setSelectedItem(c);
    }
    });
    }
    return jButton1;
    }

    } // @jve:decl-index=0:visual-constraint=”113,21″

    package ejemplo.combobox;

    import javax.swing.JComboBox;

    import com.tutorialjava.bd.ControladorBD;

    public class jComboCiudad extends JComboBox {

    public jComboCiudad() {
    super();

    try {
    ControladorBD.addSql(“SELECT * FROM ciudades ORDER BY ciu_descripcion”);
    ControladorBD.execute();

    while (ControladorBD.finRecordSet()){
    Ciudad ciu = new Ciudad();
    ciu.setCodigo(ControladorBD.getInt( “ciu_codigo”));
    ciu.setDescripcion(ControladorBD.getString( “ciu_descripcion”));

    this.addItem( ciu );
    }
    } catch (Exception e){
    e.printStackTrace();
    }
    }
    }

    package ejemplo.combobox;

    public class Ciudad {
    private Integer codigo;
    private String descripcion;
    public Ciudad() {
    super();
    // TODO Auto-generated constructor stub
    }
    public Ciudad(Integer codigo, String descripcion) {
    super();
    this.codigo = codigo;
    this.descripcion = descripcion;
    }
    public Integer getCodigo() {
    return codigo;
    }
    public void setCodigo(Integer codigo) {
    this.codigo = codigo;
    }
    public String getDescripcion() {
    return descripcion;
    }
    public void setDescripcion(String descripcion) {
    this.descripcion = descripcion;
    }
    @Override
    public String toString() {
    //return codigo + “-” + descripcion
    return descripcion + ” (” + codigo + “)”;
    }
    @Override
    public boolean equals(Object obj) {
    Integer cod1 = this.getCodigo();
    Integer cod2 = ((Ciudad)obj).getCodigo();
    if (cod1.equals(cod2)){
    return true; //Son Iguales
    } else {
    return false; // Son Diferentes

    }

    }

    }

    • Marcos Jara dijo:

      Hola Luis,

      Te pego a continuación un extracto sobre las características más interesantes del Eclipse Helios:
      – Mejoras en los recursos. Por ejemplo podemos abrir ficheros en instancias de Eclipse que ya se estén ejecutando.
      – Configuraciones basadas en características, para el desarrollo de OSGi
      – Mejoras en las API Tools
      – Mejoras en el JavaIDE, como nuevas características del formateo de código (por ejemplo marcar una sección para que no se formatee).
      – Mejoras en la plataforma. Por ejemplo podemos buscar en los repositorios para encontrar un jar y Eclipse lo añadirá para nuestra plataforma destino.
      – El API p2, y el agregador b3
      – Cliente para el MarketPlace, que hace más fácil la instalación de plugins de terceros.
      – Integración EMF, Riena y RAP. Para desarrollo de aplicaciones Web.
      – Soporte de Git en Eclipse.
      – Xtext version 1.0. Xtext es un framework de lenguajes de programación, de forma que podemos crear nuestro propio DSL (Domain Specific Language).

      En relación a tu trabajo, se vé bien, pero quien realmente te puede decir si está bien o no es el priopio sistema al ejecutarse, si hace lo que se necesita entonces está bien.

      Para hacer las barras invertidas se debe utilizar ALT+92

      Saludos

  4. Héctor dijo:

    Antes que nada mi querido Marcos, saludos y felicitaciones por este sitio, esta excelente, y lo mejor de todo explicadisimo mas ya no se puede.
    Tengo un problema, ya he instalado el appserver pero al momento de colocar la dir. http://localhost nada mas no pasa nada, es decir no aparece la pagina que deberia de aparecer, al principio crei que era por el IIS que tenia instalado pero ya lo desinstalé y volvi a instalar el appserver pero nada sigue igual.
    He pensado en formatear mi Maquina pero lo pienso porque tendría que respaldar mucha informacion y seria un proceso muy tedioso.
    Ojala y pudieras ayudarme son mi problema, ahh perdon por colocar este mensaje aqui pero pense que como es el apartado mas reciente pues hay mas posibilidades de que lo leas.
    De ante mano muchisimas gracias por tu tiempo.
    PDTA. He seguido al pie de la letra los pasos y no pasa nada.

  5. Yuliett dijo:

    Buen dia profesor…
    quisiera saberdonde es qeu crea el “ControladorBD” el cual usa para crear combobox dinamicos in clusive en estaticos… para empezar quisiera saber qeu es un un controlador donde se crea, como se usa y en que ocasiones se utiliza…

  6. Elías dijo:

    Muy buen material, pero sobre todo, muy bien explicado.
    Me fue de gran ayuda.

    !Te felicito!

  7. Mimi dijo:

    Hola mucho tiempo busque un tutorial práctico, y al fin lo encontre- Es excelente la explicación. Yo estoy trabajando en NetBeans pero lo adapté y funciona perfectamente. Muchas Gracias.

  8. Joeey dijo:

    Hola muy Bueno el tutorial pero nose si podrias hacer un video en el que se manejen mas de 2 comboBox conectados en una base de datos (algo como pais,departamento,provincia dependiendo del pais que se seleccione se llenan los otros campos de abajo al igual que al seleccionar un departamento se llena el combo provincia)yo estoy tratando de hacerlo pero me da error me dijeron que se tiene que trabajar con campos bandera pero nose como hacerlo

    • Marcos Jara dijo:

      Hola Joeey

      Bueno, teniendo como base el video del combobox dinamico, creo que se puede hacer facilmente, es simplemente utilizar la lógica para realizar lo que deseas. El concepto está

      Saludos.

  9. Jose dijo:

    Hola Marcos : Quiero felicitarle por este buenisimo tutorial que me esta dando una buena base para aprender Java. Tambien quisiera saber como puedo aplicar este ejemplo del combobox dinamico en Netbeans. Lo voy agradecer muchisimo
    Felicitaciones

  10. Carlos Ruiz dijo:

    Hola Profesor Marcos muchas gracias por compartir tus enseñanzas, me han gustado mucho estos tutoriales pero pude observar que no has actualizado mas el indice de este Tutorial, y me gustaria me recomendaras otro sitio donde pueda seguir aprendiendo Java de forma práctica como tu nos has mostrado.
    Espero tu respuesta y muchisimas gracias.

  11. selmi dijo:

    hola primero que nada muchas gracias por compartir tus conocimientos!!! son nueva en esto y estoy programando en netbeans aunque es java la sintaxis es un poco diferente. sera que tengas algo que pueda ayudarme gracias!!!!!

  12. Marco Romero dijo:

    hola primero agradecer por conpartir con nosotros sus conocimentos, netbeans 6.8 y pregunto al conpararlo con eclipse cual es mas practico para alguien que esta comensando con java
    gracias
    Marco

    • Marcos Jara dijo:

      Y todo depende de lo que quieras hacer, de todas maneras te conviene conocer ambos y luego decidir por tu propia cuenta cuál es el que mejor se adapta a tus necesidades

      Saludos.

      • Marco Romero dijo:

        hola profesor viendo las caracteristicas de cada uno de los programas me resulto mas facil y agradable trabajar con netbeans solo que sobre mi primera consulta como trabajar con valores dinamicos en un jcombobox los videos no puedo ver si cuenta con una pagina directa me gustaria saber cual es gracias

      • Marcos Jara dijo:

        Si

        Todos los videos estan en youtube

        Saludos

  13. mariiu dijo:

    hola marcos:
    muy buen tutorial. gracias
    quisiera si me podes ayudar, tengo q resolver un ejercicio, en el q tengo una caja de texto, un boton y un combobox, lo que escribo en la caja de texto tiene que pasar al combobox cuando clikeo en el boton.
    si me pudieras ayudar te agradeceria mucho, ya que construyo los elementos pero mi problema es el traspaso de lo escrito al combobox
    muchas gracias

    • Marcos Jara dijo:

      Hola

      Te recomiendo aprender a utilizar primeramente el combobox, segun lo que explico en uno de los videos,

      Te aseguro que una vez que realices ese ejercicio, vas a poder resolver tranquilamente lo que necesitas.

      Saludos

  14. Julio dijo:

    Saludos Marcos
    Gracias por tus enseñanzas amigo mío. Mi inquietud es la siguiente: Haciendo uso del jComboBox, poder seleccionar las diferentes categorias de peliculas y que me indique cuantas de cada categoria hay. La primera parte, ya la tengo, en donde agrego peliculas a un jTable, teniendo en cuenta su titulo,categoria y duracion…son dos JComboBox, con uno agrego las peliculas y con el otro es para saber cuantas peliculas,de cada categoria, hay. Nuevamente gracias,un abrazo.

  15. Julio dijo:

    Saludos Marcos
    Gracias por tus enseñanzas amigo mío. Mi inquietud es la siguiente: Haciendo uso del jComboBox, poder seleccionar las diferentes categorias de peliculas y que me indique cuantas de cada categoria hay. La primera parte, ya la tengo, en donde agrego peliculas a un jTable, teniendo en cuenta su titulo,categoria y duracion…son dos JComboBox, con uno agrego las peliculas y con el otro es para saber cuantas peliculas,de cada categoria, hay. Nuevamente gracias,un abrazo.

  16. arcanyel dijo:

    Buenas, Disculpad pero en el 2º video cuando agregais el JButton, en el ActionListener() > actionPerfomed() > cuando estais agregando el getJComboCiudad no me muestra getJComboCiudad… que puede ocacionar esto? y eso sirve para hacer combos anidados? es que necesito hacer combos anidados tomando el codigo (ciu.getCodigo()) como lo haceis para mostrar el mensaje… por favor ayudadme

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s