Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Natychmiastowa aktualizacja JCombobox w Javie

Jeśli zrozumiałem, że chcesz, aby nowy pracownik, który został dodany, był tym, który jest zaznaczony w polu rozwijanym?

Po uzyskaniu nazwy nowego pracownika i dodaniu jej do listy rozwijanej wystarczy zadzwonić pod numer JComboBox#setSelectedItem(Object o) z imieniem i nazwiskiem nowego pracownika.

czyli:

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

AKTUALIZUJ

Zgodnie z Twoimi komentarzami:

Podstawy:

1) Uzyskaj imię i nazwisko nowego pracownika lub inny identyfikator odpowiadający elementom w polu rozwijanym z okna dialogowego dodawania pracownika.

2) Następnie po prostu wywołaj setSelectedItem(name) after the data has been added to combobox`.

Możesz więc zobaczyć swój Dodaj pracodawcę okno dialogowe zwraca nazwę lub posiada metodę, aby uzyskać nazwę, która została dodana do bazy danych. W swojej klasie combobox po zamknięciu okna dialogowego możesz odświeżyć listę combobox nowymi wpisami, dodać imię i nazwisko za pomocą okna dialogowego dodawania pracownika i wywołać JComboBox#setSelectedItem(..) o nazwie, którą otrzymaliśmy od Dodaj pracodawcę dialog przy użyciu getterów lub zmiennej statycznej

czyli:

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

}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowywanie ciągu binarnego w MySQL

  2. Zapytanie SQL, aby uzyskać sumę częściową niektórych wierszy

  3. Czy metody PDO mogą się nie powieść i nie zgłosić wyjątku PDOException?

  4. Dlaczego MySQL zwraca te same wyniki podczas używania RAND() w instrukcji SELECT?

  5. Scal tabelę na jednej z 2 kolumn w pandy