Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sofortiges Update auf JCombobox in Java

Wenn ich verstanden habe, möchten Sie, dass der neu hinzugefügte Mitarbeiter das ist, was in der Combobox ausgewählt ist?

Sobald Sie den Namen des neuen Mitarbeiters erhalten und zur Combobox hinzugefügt haben, rufen Sie einfach JComboBox#setSelectedItem(Object o) mit dem Namen des neuen Mitarbeiters.

d.h.:

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

AKTUALISIEREN

Gemäß Ihren Kommentaren:

Die Grundlagen:

1) Holen Sie sich den neuen Mitarbeiternamen oder eine beliebige Kennung, die mit der der Elemente in Ihrer Combobox aus Ihrem Dialogfeld "Mitarbeiter hinzufügen" übereinstimmt.

2) Rufen Sie dann einfach setSelectedItem(name) after the data has been added to hinzugefügt wurden Kombinationsfeld`.

Möglicherweise sehen Sie also Ihren Arbeitgeber hinzufügen Dialog einen Namen zurückgeben oder eine Methode haben, um den Namen abzurufen, der der Datenbank hinzugefügt wurde. In Ihrer Combobox-Klasse würden Sie nach dem Schließen des Dialogs die Combobox mit neuen Einträgen aktualisieren, den Namen über den Dialog Mitarbeiter hinzufügen hinzufügen lassen und JComboBox#setSelectedItem(..) aufrufen mit dem Namen, den wir von Arbeitgeber hinzufügen erhalten haben Dialog mit Gettern oder statischer Variable

d.h.:

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

}