发生特定选择时显示组合框

时间:2014-01-02 15:30:34

标签: java swing jcombobox

我正在用Java编写书店,并且在订购新书时遇到问题我希望用户选择它是电子书还是纸质书。如果是电子书,我希望在页面上显示另一个名为cboFormat的组合框。我有一些代码,但它似乎不起作用。

这是在构造函数中。

if("Ebook".equals(cboBookType.getSelectedItem()))
    {
        cboFormat.enable();
    }
     else 
     {
     cboFormat.disable();
     }

为什么这不起作用?我之前也将格式输入设置为禁用。

2 个答案:

答案 0 :(得分:1)

这可能是你的组合框上没有actionlistener?正如安德鲁建议的那样,可能有更多原因导致您的块不起作用。如果您粘贴了更多代码,则更容易确定问题所在。但是,如果您在组合框中缺少动作侦听器,请执行以下代码。

  public void actionPerformed(ActionEvent e) {
            JComboBox cboBookType = (JComboBox)e.getSource();
            String bookType= (String)cboBookType.getSelectedItem();
            //and paste your ifs here
            if("Ebook".equals.....){
              ...
            }
        ... rest of code
    }

如果你不知道什么是动作监听器,它的基本接口被其他类用来监听动作事件。即用户点击按钮,或用户选择复选框等。

答案 1 :(得分:0)

不要使用启用和禁用尝试这个并且不要把它放在构造函数中,因为它不会更新你必须创建像itemchanged或itemstatechanged这样的新事件我完全不知道

   if("Ebook".equals(cboBookType.getSelectedItem()))
    {
        cboFormat.setvisible(true);
    }
     else 
     {
     cboFormat.setvisible(false);
     }