sql >> Base de Datos >  >> RDS >> Mysql

Actualización inmediata a JCombobox en Java

Si entendí que desea que el nuevo empleado que se agregó sea lo que se selecciona en el cuadro combinado?

Una vez que haya obtenido el nombre de los nuevos empleados y lo haya agregado al cuadro combinado, simplemente llame a JComboBox#setSelectedItem(Object o) con el nombre del nuevo empleado.

es decir:

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

ACTUALIZAR

Según sus comentarios:

Lo básico:

1) Obtenga el nombre del nuevo empleado o cualquier identificador que coincida con el de los elementos en su cuadro combinado desde el cuadro de diálogo Agregar empleado.

2) Que simplemente llame a setSelectedItem(name) after the data has been added to cuadro combinado`.

Por lo tanto, es posible que vea su Agregar empleador El diálogo devuelve un nombre o tiene un método para obtener el nombre que se agregó a la base de datos. En su clase de cuadro combinado después de cerrar el cuadro de diálogo, debe actualizar el cuadro combinado con nuevas entradas, obtener el nombre agregado a través del cuadro de diálogo Agregar empleado y llamar a JComboBox#setSelectedItem(..) con el nombre que obtuvimos de Agregar empleador diálogo usando getters o variable estática

es decir:

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

}