Mysql
 sql >> Database >  >> RDS >> Mysql

Aggiornamento immediato a JCombobox in Java

Se ho capito, vuoi che il nuovo dipendente che è stato aggiunto sia quello selezionato nella casella combinata?

Dopo aver ottenuto il nome del nuovo dipendente e averlo aggiunto alla casella combinata, chiama semplicemente JComboBox#setSelectedItem(Object o) con il nome del nuovo dipendente.

cioè:

String newEmpName=...;
//code to add new employee goes here
//code to fill combobox with update values goes here
//now we set the selecteditem of the combobox
comboEmployer.setSelectedItem(newEmpName);

AGGIORNAMENTO

Secondo i tuoi commenti:

Le basi:

1) Ottieni il nome del nuovo dipendente o qualsiasi altro identificatore corrisponda a quello degli elementi nella tua casella combinata dalla finestra di dialogo Aggiungi dipendente.

2) Quindi chiama semplicemente setSelectedItem(name) after the data has been added to casella combinata`.

Quindi potresti vedere il tuo Aggiungi datore di lavoro dialog restituisce un nome o dispone di un metodo per ottenere il nome che è stato aggiunto al database. Nella tua classe della casella combinata dopo la chiusura della finestra di dialogo, aggiorneresti la casella combinata con nuove voci, ottenere il nome aggiunto tramite la finestra di dialogo Aggiungi dipendente e chiamare JComboBox#setSelectedItem(..) con il nome che abbiamo ricevuto da Aggiungi datore di lavoro finestra di dialogo utilizzando getter o variabile statica

cioè:

class SomeClass {

    JFrame f=...;
    JComboBox cb=new ...;

    ...

    public void someMethod() {
       AddEmployerDialog addEmpDialog=new AddEmployerDialog(f);//wont return until exited or new name added

       String nameAdded=addEmpDialog.getRecentName();//get the name that was added

      //clear combobox of all old entries
      DefaultComboBoxModel theModel = (DefaultComboBoxModel)cb.getModel();
      theModel.removeAllElements();

       //refresh combobox with the latest names from db
       fillCombo();

       //now we set the selected item of combobox with the new name that was added
       cb.setSelectedItem(nameAdded);
  }

}

class AddEmployerDialog {

    private JDialog dialog;
    private String empName;//emp name will be assigned when save is pressed or whatever

    public AddEmployerDialog(JFrame frame) {

        dialog=new JDialog(f);
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        dialog.setModal(true);//so that we dont return control until exited or done
        //add components etc
        dialog.pack();
        dialog.setVisible(true);

    }

    public String getRecentName() {
        return empName;
    }

}