Tres ejemplos de cómo usar un jComboBox en java netbeans 6

Hay muchos ejemplos en la web de cómo usar un jComboBox mediante código. Por ejemplo creamos un array de String y se lo pasamos al constructor del jComboBox, algo parecido a lo siguiente:


String [] meses={"enero","febrero","marzo"};
JComboBox micombo=new JComboBox(meses);


Pero en el IDE Netbeans 6.9.1.. Cómo lo hacemos? Hemos sabido arrastrar el componente a nuestro panel, pero ahora que?
Pues habrá muchas formas de llenar nuestro JComboBox, pero aquí sólo vamos a explicar tres formas, empezando por la más fácil y terminando por una un poco más compleja. Ya según la necesidad, usaréis la que más os convenga.

Primer método



Esto es lo más fácil. Pincha sobre el jComboBox en la parte de diseño y en propiedades->model usando el "Editor del modelo de lista desplegable" tan sólo tendrás que escribir los items, uno en cada línea.

Segundo método



Este es si por ahí tienes ya definido tu array de String con los valores que quieres que aparezcan en el desplegable. Pincha sobre el jComboBox en la parte de diseño y en propiedades->model usando el "Código personal" añade:


new javax.swing.DefaultComboBoxModel(meses)


Es decir que la sentencia en el código quedará así:

jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(meses));


Tercer método


Este es el más complejo. Al igual que el ejemplo anterior usa el "Código personal" pero se le añade una instancia de tu própia clase personalizada "new MiComboBoxModel()".
Para esto hay que crear una clase nueva en tu proyecto, y con esta clase implementar como creas conveniento cómo se va a comportar el contenido del jcombobox.

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Locale;
import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;


public class MiComboBoxModel extends AbstractListModel implements ComboBoxModel {
Calendar micalendar;
ArrayList anioslist=new ArrayList();

public MiComboBoxModel(){
micalendar=Calendar.getInstance();//ahora
int ano=micalendar.get(Calendar.YEAR);
anioslist.add(String.valueOf(ano-4));
anioslist.add(String.valueOf(ano-3));
anioslist.add(String.valueOf(ano-2));
anioslist.add(String.valueOf(ano-1));
anioslist.add(String.valueOf(ano));
anioslist.add(String.valueOf(ano+1));
anioslist.add(String.valueOf(ano+2));
anioslist.add(String.valueOf(ano+3));
anioslist.add(String.valueOf(ano+4));

}
String selection = "2010";

public Object getElementAt(int index) {
return anioslist.get(index);
}

public int getSize() {
return anioslist.size();
}

public void setSelectedItem(Object anItem) {
selection = (String) anItem; // to select and register an
} // item from the pull-down list

// Methods implemented from the interface ComboBoxModel
public Object getSelectedItem() {
return selection; // to add the selection to the combo box
}
}


Luego sólo quedaría lo que ya hemos comentado. En propiedades->model del componente usando "Código personal" añadimos:


new MiComboBoxModel()


Es decir que la sentencia en el código quedará así:

jComboBox2.setModel(new MiComboBoxModel());

Comentarios

  1. me ha ayudado bastante gracias (Y)

    ResponderEliminar
    Respuestas
    1. No, tu cállate.

      Eliminar
    2. Que estúpido, trata de tener buena ortografía y se preocupa de poner la tilde en la "a" , pero no en "tú" jaja...

      Eliminar
  2. Sencillo y super útil!!! Gracias.

    ResponderEliminar
  3. Es un aporte muy bien explicado, también me ayudo. Gracias

    ResponderEliminar
  4. no me sirvio para nada. es absurdo

    ResponderEliminar
  5. Siempre que veo esta wea de pelicula el culiao se pierde, Muy buena

    ResponderEliminar
  6. ayuda necesito hacer una aplicacion en java de netbeans, usando 3 combobox para sexo,estado civil y nacionalidad, ya bien sea estos 3 resultados me los guarde en una base de datos de mysql.

    ResponderEliminar
  7. disculpen me podrian decir cual es la sintaxis de swing jcombobox

    ResponderEliminar
  8. disculpen me podrian decir cual es la sintaxis de swing jcombobox

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

CMapTools flecha directa a un nodo

Personalizar el render de celdas de un jTable