java中的多个链接组合框

时间:2012-11-28 17:51:37

标签: java combobox

  

可能重复:
  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上调用该方法作为我的第一个组合框,并且与第二个

类似

1 个答案:

答案 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