Nếu tôi hiểu, bạn muốn nhân viên mới được thêm vào sẽ là nhân viên được chọn trong hộp kết hợp?
Khi bạn đã có tên nhân viên mới và thêm nó vào combobox, chỉ cần gọi JComboBox#setSelectedItem(Object o)
với tên của nhân viên mới.
tức là:
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);
CẬP NHẬT
Theo nhận xét của bạn:
Những điều cơ bản:
1) Nhận tên nhân viên mới hoặc bất kỳ số nhận dạng nào phù hợp với các mục trong hộp kết hợp của bạn từ hộp thoại thêm nhân viên của bạn.
2) Đơn giản hơn là gọi setSelectedItem(name) after the data has been added to
hộp kết hợp`.
Vì vậy, bạn có thể thấy Thêm nhà tuyển dụng của mình hộp thoại trả về tên hoặc có một phương thức để lấy tên đã được thêm vào cơ sở dữ liệu. Trong lớp combobox của bạn sau khi hộp thoại đóng, bạn sẽ làm mới hộp kết hợp với các mục nhập mới, lấy tên được thêm qua hộp thoại thêm nhân viên và gọi JComboBox#setSelectedItem(..)
với tên mà chúng tôi nhận được từ Thêm nhà tuyển dụng hộp thoại sử dụng getters hoặc biến tĩnh
tức là:
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;
}
}