Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Atualização imediata para JCombobox em Java


Se eu entendi que você quer que o novo funcionário que foi adicionado seja o que está selecionado na combobox?

Depois de obter o nome dos novos funcionários e adicioná-lo à caixa de combinação, basta chamar JComboBox#setSelectedItem(Object o) com o nome do novo funcionário.

ou seja:
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);

ATUALIZAÇÃO

Conforme seus comentários:

O básico:

1) Obtenha o novo nome do funcionário ou qualquer identificador que corresponda ao dos itens em sua caixa de combinação na caixa de diálogo adicionar funcionário.

2) Basta chamar setSelectedItem(name) after the data has been added to caixa de combinação`.

Então você pode ver seu Adicionar Empregador dialog retorna um nome ou tem um método para obter o nome que foi adicionado ao banco de dados. Em sua classe de combobox após a caixa de diálogo ser fechada, você atualizaria a combobox com novas entradas, obteria o nome adicionado através da caixa de diálogo adicionar funcionário e chamaria JComboBox#setSelectedItem(..) com o nome que recebemos de Adicionar empregador diálogo usando getters ou variável estática

ou seja:
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;
    }

}