Pregunta

Lo que estoy tratando de hacer imita una etiqueta de selección HTML. Quiero mostrar el texto como una opción, pero cuando esté seleccionado, usaría su valor.

Por ejemplo, tendría una lista de nombres de países. Sin embargo, cuando un usuario selecciona Japón, quiero obtener el código de configuración regional para ese país. Entonces el usuario ve que seleccionó Japón, pero mi código obtendrá " ja_JP " o algo así.

Estoy tratando de evitar almacenar el nombre del país y el código de configuración regional en un HashMap o algo así.

¿Fue útil?

Solución

Cree un objeto País que contenga el nombre para mostrar y el código del país. Podría hacer lo rápido y sucio y anular toString para mostrar el nombre de visualización y luego recuperar el código cuando lo necesite cuando el usuario seleccione algo.

public class Country
{
    String display;
    String code;

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

    public String getCode()
    {
        return code;
    }
}

Dejé de lado al constructor porque soy perezoso. Si no está satisfecho con la anulación de toString, también puede crear su propio renderizador que se ocupe de los objetos de País y utilizar la pantalla a través de un nuevo captador.

Otros consejos

EDITAR: Necesito escribir más rápido.

Por lo general, creo un objeto personalizado para mantener el " valor " y anule toString () para devolver lo que debe mostrar el JComboBox. Alternativamente, puedes escribir tu propio procesador de células.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top