可能重复:
Dynamic JComboBoxes
我是java程序的新手。 关于组合框我的程序有这个问题。 我有3个组合框(cbxType,cbxItem和cbxColor)。我希望第二个组合框(cbxItem)中的项目列表基于第一个组合(类型)而改变,然后第三个组合框(cbxColor)项目列表根据第二个组合框中的所选项目(cbxItem)而改变。 我一直试图通过我自己的代码解决这个问题,第二个组合框在第一个改变时工作正常,但是第三个组合框在我改变之后不会显示任何项目。 这是我的代码。 谢谢你的帮助,对不起我的坏英语..
private void viewCbxType(){
String sql;
try {
sql ="Select distinct productItem from Product ";
if(cbxType.getSelectedItem() != "<<Product Type>>"){
String prType = cbxType.getSelectedItem().toString();
sql ="Select distinct productItem from Product WHERE productType='" +prType+"'";
cbxItem.removeAllItem();
cbxItem.setSelectedIndex(0);
}
}
PreparedStatement st = conn.prepareStatement(sql);
ResultSet rs =st.executeQuery();
while (rs.next()) {
String prItem = rs.getString("productItem");
cbxItem.addItem(prItem);
}
}catch (SQLException se) {}
}
我在actionPerformed上调用该方法作为我的第一个组合框,并且与第二个
类似答案 0 :(得分:0)
您可以在组合框上实现动作侦听器:
public class ComboBoxDemo ... implements ActionListener {
. . .
petList.addActionListener(this) {
. . .
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
}
. . .
}
此动作侦听器从组合框中获取新选择的项目,使用它来计算图像文件的名称,并更新标签以显示图像。当用户从组合框的菜单中选择项目时,组合框将触发一个动作事件。有关实现动作侦听器的一般信息,请参见如何编写动作侦听器:
http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
这也可以帮到你
http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html