Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mise à jour immédiate de JCombobox en Java

Si j'ai bien compris, vous voulez que le nouvel employé qui a été ajouté soit celui qui est sélectionné dans la liste déroulante ?

Une fois que vous avez obtenu le nom du nouvel employé et que vous l'avez ajouté à la liste déroulante, appelez simplement JComboBox#setSelectedItem(Object o) avec le nom du nouvel employé.

c'est-à-dire :

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);

MISE À JOUR

Selon vos commentaires :

Les bases :

1) Obtenez le nom du nouvel employé ou tout identifiant correspondant à celui des éléments de votre liste déroulante à partir de votre boîte de dialogue d'ajout d'employé.

2) Que d'appeler simplement setSelectedItem(name) after the data has been added to combobox`.

Ainsi, vous pourriez voir votre Ajouter un employeur dialog renvoie un nom ou possède une méthode pour obtenir le nom qui a été ajouté à la base de données. Dans votre classe de combobox après la fermeture de la boîte de dialogue, vous actualiserez la combobox avec de nouvelles entrées, obtiendrez le nom ajouté via la boîte de dialogue d'ajout d'employé et appellerez JComboBox#setSelectedItem(..) avec le nom que nous avons obtenu de Ajouter un employeur boîte de dialogue utilisant des getters ou une variable statique

c'est-à-dire :

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;
    }

}