Как выбирать по умолчанию элемент jcombobox, который загружается с класса?

У меня есть jcombobox, который загружает районы Чили, я использую класс, названный Районы, чтобы так сохранять также идентификацию. Мне нужно, чтобы после того, как консультировал данные человека, был загружен jcombobox (что это делает без проблем), но также мне нужно, чтобы был выбран район человека. Я не могу использовать просто .setSelectedItem ("Nombre-de-la-region"), потому что combobox одинокий recive объекты класса Районы.

Код класса этот:

public class Regiones {

    public int id;
    public String nombre, num_r;

    Connection connect;


    public Regiones(int id, String nombre) {
        this.id = id;
        this.nombre = nombre;
    }

    public Regiones() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNum_r() {
        return num_r;
    }

    public void setNum_r(Integer id) {
        this.num_r = num_r;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }


    public void cargarR(JComboBox<Regiones> cbx_region){
        connect = Conexion.getConnection();
        String sql = "SELECT * FROM region WHERE ACTIVO_REGION = 'SI';";
        ResultSet rs = null;
        PreparedStatement ps = null;
        try {
            ps = connect.prepareStatement(sql);
            rs = ps.executeQuery();

            for (int i=0; i<=1; i++){
                if (i == 0){
                    int a = 0; String b ="", c ="Seleccionar Región";
                    cbx_region.addItem(
                        new Regiones(
                            a,
                            c
                        )
                    );
                }
                else{
                while(rs.next()){
                    cbx_region.addItem(
                            new Regiones(
                                rs.getInt("ID_REGION"),
                                rs.getString("NUM_REGION")+" - "+ rs.getString("NOMBRE_REG")
                            )
                    );
                }
            }
        }

    } catch (Exception ex) {
        Logger.getLogger(Regiones.class.getName()).log(Level.SEVERE, null, ex);
    }

}


@Override
public String toString(){

    return nombre;
}

}

И чтобы загружать combobox, код этот:

Regiones rg = new Regiones();
rg.cargarR(cbx_region);

Но не, как выбирание назначенного по умолчанию района.

2
задан 13.01.2017, 07:49
0 ответов

Чтобы выбирать элемент combobox он используется:

  • setSelectedIndex (), чтобы перемещать индекс, который занимает элемент, который ты хочешь пометить
  • setSelectedItem (), чтобы выбирать статью из-за стоимости

В твоем случае ты говоришь, что второй не стоит тебе, так что ты можешь использовать первого.

Эдж:

JComboBox test = new JComboBox();
test.addItem(new ComboItem(0, "Pan"));
test.addItem(new ComboItem(1, "leche"));
test.addItem(new ComboItem(2, "huevos"));
test.addItem(new ComboItem(3, "manzanas"));

//para seleccionar el de ID = 2, huevos
test.setSelectedIndex(2);

//para seleccionar el de valor "manzanas
test.setSelectedItem("manzanas");

Заметь: если какая-то инструкция не соответствовала (ej: test.setSelectedIndex(5); // no hay index 5 en test ) он не побил бы козырем программу и остался бы отборным тот, который уже это был, и был бы продолжен выполнением программы.

1
ответ дан 03.12.2019, 17:41
  • 1
    Смоги использовать второй случай, но не с String а с инстанцией Región: У setSelectedItem(persona.getRegion()); понимая, что объект является лично, есть mé совсем как getRegion(), которые возвращали бы regió n. Если ты издаешь твой ответ с этим estarí в совершенную. –  13.01.2017, 09:49
  • 2
    Спасибо @Awes0meM4n. Кажется, который имя, если он делает вещь xD, Но откуда выходит persona? –  13.01.2017, 09:50
  • 3
    Я принял, у которого немного, кажется, должен быть OP, потому что он говорит , мне нужно, чтобы был выбран район человека , но чтобы он не смог искать это по имени. Возможно, что то, что он возвращает, является String имени regió n, в котором случае лучшее serí чтобы осуществлять один get regió n для этого. –  13.01.2017, 10:25
  • 4
    Если бы, @Awes0meM4n был asumible, но чтобы знать xD лучше, что я объяснил нам, есть ли у него методы, которые доставали бы эту информацию –  13.01.2017, 10:26
  • 5
    Конечно, но я верю в то, что он será má s fá cil соглашаться на regió n así который í получать; ndice для каждого regió n segú n cargó изогнутый.Si ты обращаешь внимание, как это груз не имеет ningú n контроль на í ndices просто добавь элементы с ResultSet (я это harí в así tambié n, но с одним try-with-resources, что я это cerrarí во все, хотя это другая тема). –  13.01.2017, 10:32