当前位置: 首页 > 知识库问答 >
问题:

无法从组合框中选择项

郎灿
2023-03-14

我已经实现了ActionListener,这样我的船舶列表就会根据国家和船舶类型进行更改,但问题是我无法选择任何船舶。

你知道我哪里出了问题吗?

private class ShipNameListener implements ActionListener
{   
    public ShipNameListener()
    {
        view.setShipNameListener(this);
    }   

    @Override
    public void actionPerformed(ActionEvent arg0) 
    {           
        if (view.getNationComboBox().getSelectedItem() == "USA")
        {
            if (view.getShipTypeComboBox().getSelectedItem() == "Battleship")
            {
                view.setShipList(lists.getUSABattleships());
            }
            else if (view.getShipTypeComboBox().getSelectedItem() == "CV")
            {
                view.setShipList(lists.getUSACVs());
            }
            else if (view.getShipTypeComboBox().getSelectedItem() == "Destroyer")
            {
                view.setShipList(lists.getUSADestroyers());
            }
            else if (view.getShipTypeComboBox().getSelectedItem() == "Cruiser")
            {
                view.setShipList(lists.getUSACruisers());
            }
        }           
    }       
}

上面是Controller类中的ActionListener

public void setShipNameListener(ActionListener al) 
{
    comboBoxNation.addActionListener(al);
    comboBoxShipType.addActionListener(al);
    comboBoxShipName.addActionListener(al);     
}

上面是视图类中的setter。

共有1个答案

苏坚成
2023-03-14

不要使用==进行对象比较。您只能使用==进行基元比较。

对于对象,请使用equals(...)方法。

 类似资料:
  • 我有一个带有组合框的xaml。由于某种原因,我在那里有一些项目,我不能选择它们,当我选择一个项目时,它通常不允许我更改我的选择,如果它更改了,它仅适用于某些值。这是代码: 我希望我写的很清楚,因为我把它从电脑复制到了手机上。基本上,我有所有的用户,并按部门对他们进行分类。用户只能看到他所在部门的文档,并且可以选择绑定词典中可用的文档。如果不可用,组合框中的项目将为红色且不可检查。这个管用。唯一没有

  • 所以,我有一个奇怪的问题,我从组合框列表中选择一个项目,为了填充第二个组合框,我必须首先从第一个组合框中再次选择单词,而不是从项目列表中,而是单词本身。只有这样,代码才会注册我选择了该项目。我拥有的代码是简单的$variable.SelectedItem。参见下面的代码; 我想做的就是从下拉列表中选择位置“医院”,然后第二个名为“$ComboBox_Printer”的组合框填充我服务器中的打印机名

  • 这是我第二次发布相同的问题,直到现在都没有得到答案。 我有一个组合框,下面是商店(ExtJs 2.3) 组合存储: 分配 会议 工资 我在键上过滤组合,这样“薪水”项就不会显示在列表中,它工作正常。但是由于组合框项也可以通过键入iside combobox来选择,所以我在组合框的keyUp和beforeQuery上编写了以下代码。 这成功地过滤掉了“薪水”选项,但现在我无法像以前一样通过键入内部组

  • 问题内容: 我可以使用列出所有组合, 但这通常会很大。 给定和,我如何在不首先构建大量列表的情况下随机地均匀选择组合? 问题答案: 来自http://docs.python.org/2/library/itertools.html#recipes

  • 问题内容: 我们正在使用Selenium WebDriver和JBehave在我们的Web应用程序上运行“集成”测试。我有一种方法,可以在表单输入中输入一个值。 但是,当我尝试使用它在下拉列表中选择一个项目时,它(毫无疑问)失败了 java.lang.UnsupportedOperationException:您只能设置作为输入元素的元素的值 如何在组合中选择一个值? 问题答案: 这是怎么做的:

  • 我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是: