private void fillCombo(){
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/MTD","root","");
PreparedStatement ps = con.prepareStatement("Select * from sa where municipalities ='" + municipality.getSelectedItem().toString()+ "'");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String mun = rs.getString("Province");
municipality.addItem(mun);
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
我有两个组合框,它们从数据库中获取值。第一个组合(
province
)来自具有一列的表,该列是省份列表。因此,在province.itemchangedstate
上,我希望它相对于combo2
(municipalities
)选择的省份设置combo1
(province
)的值。Java的新手,固守于此,不知道如何进一步进行。有人可以帮忙吗?
最佳答案
据我说,您的要求是在选择另一个组合框的基础上填充另一个组合框。
喜欢
此示例代码可能适合您。
private void populateDropDownOfEnum(){
EncDecImageFrame encDecImageFrame = new EncDecImageFrame();
jComboBox1.setEditable(true);
String[] jComboBox1Values = getListOfAllEnumNames();
if (jComboBox1Values != null && jComboBox1Values.length != 0) {
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(jComboBox1Values));
}
Object item = jComboBox1.getSelectedItem();
jComboBox2.removeAllItems();
jComboBox2.setEditable(true);
String[] enumValuesByEnumNames = getListOfAllEnumValues(
item.toString(), artifcatoryPathOfJar.getText());
jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(
enumValuesByEnumNames));
jComboBox1.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Object item = jComboBox1.getSelectedItem();
jComboBox2.removeAllItems();
jComboBox2.setEditable(true);
String[] enumValuesByEnumNames = getListOfAllEnumValues(
item.toString(), artifcatoryPathOfJar.getText());
jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(
enumValuesByEnumNames));
}
});