Saltar al contenido

Agregar elementos a un JComboBox

Solución:

Envuelva los valores en una clase y anule el toString() método.

class ComboItem
{
    private String key;
    private String value;

    public ComboItem(String key, String value)
    {
        this.key = key;
        this.value = value;
    }

    @Override
    public String toString()
    {
        return key;
    }

    public String getKey()
    {
        return key;
    }

    public String getValue()
    {
        return value;
    }
}

Agregue el ComboItem a su comboBox.

comboBox.addItem(new ComboItem("Visible String 1", "Value 1"));
comboBox.addItem(new ComboItem("Visible String 2", "Value 2"));
comboBox.addItem(new ComboItem("Visible String 3", "Value 3"));

Siempre que obtenga el artículo seleccionado.

Object item = comboBox.getSelectedItem();
String value = ((ComboItem)item).getValue();

Puede utilizar cualquier objeto como elemento. En ese objeto puede tener varios campos que necesite. En su caso, el campo de valor. Tienes que anular el método toString () para representar el texto. En su caso, “texto del artículo”. Vea el ejemplo:

public class AnyObject {

    private String value;
    private String text;

    public AnyObject(String value, String text) {
        this.value = value;
        this.text = text;
    }

...

    @Override
    public String toString() {
        return text;
    }
}

comboBox.addItem(new AnyObject("item_value", "item text"));

addItem (Object) toma un objeto. El renderizador JComboBox predeterminado llama a toString () en ese objeto y eso es lo que muestra como etiqueta.

Por lo tanto, no pase una cadena a addItem (). Pase un objeto cuyo método toString () devuelva la etiqueta que desea. El objeto también puede contener cualquier número de otros campos de datos.

Intente pasar esto a su cuadro combinado y vea cómo se procesa. getSelectedItem () devolverá el objeto, que puede devolver al widget para obtener el valor.

public final class Widget {
    private final int value;
    private final String label;

    public Widget(int value, String label) {
        this.value = value;
        this.label = label;
    }

    public int getValue() {
        return this.value;
    }

    public String toString() {
        return this.label;
    }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *