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

如何从java中的JComboBox中获取选定的项目并将其与字符串进行比较?

郑博
2023-03-14

对于我的家庭作业,只有当选择的组合框值是“深碟”时,我才需要在总数上加2

我试过了

thickness.getSelectedItem().contentEquals("deep dish")
    {
        total += 2.00;
    }

我得到的错误是contentEquals对于该类型对象是未定义的,我不知道正确的方法。为了清楚起见,

String[] choices = {"thin","original","deep dish"};
thickness = new JComboBox(choices);

共有1个答案

夏侯昆琦
2023-03-14

因为JComboBox是泛型类型。您使用的构造函数是pre5样式Java。这意味着您在编译时不会得到泛型提供的类型检查。我的建议是使用IDE,它会突出显示编辑器中的一些明显错误。创建JComboBox的正确方法是:

JComboBox<String> thickness = new JComboBox<String>(choices);

你看,thickness.getSelectedItem() 现在将返回一个字符串

编辑

我刚刚查看了< code > javax . swing . jcombobox . Java 内部,他们忽略了方法< code>getSelectedItem()的泛型类型信息:

    public Object getSelectedItem() {
        return dataModel.getSelectedItem();
    }

您有两个选项:1)继续使用String类型的方法contentEquals,但在代码中显式进行类型转换:

String selectedItem = (String) myComboBox.getSelectedItem();

if (selectedItem.contentEquals("Hello world!")) {
...
}
if ("Hello Wolrd!".equals(myComboBox.getSelectedItem())) {
...
}
 类似资料:
  • 我有一个JComboBox选择项目的问题,有人能帮我吗?我已经实现了一个图形用户界面窗口,其中有各种文本字段和一个JComboBox。当我点击按钮,代码必须创建一个对象与字符串的文本字段和字符串的ComboBox,但我有一个在...获取的代码是: 我也试过: 但是不要工作!我不知道我是否需要一个ActionListener,但我认为这不是必需的。

  • 问题内容: 假设我有一个数组/要比较的事物列表。在我更熟悉的语言中,我会做类似的事情 这样可以确保我们只比较每对一次。在某些情况下,我正在对列表中包含的一堆对象进行碰撞检测。对于检测到的每个碰撞,将一个描述碰撞的小的“碰撞”对象添加到列表中,然后另一个例程循环循环以解决每个碰撞(取决于两个碰撞对象的性质)。显然,我只想报告每个碰撞一次。 现在,这样做的pythonic方式是什么,因为Python倾

  • 问题内容: 我有一个美国所有州的枚举列表,如下所示: 在测试文件中,我将从包含状态的文本文件中读取输入。由于它们是字符串,因此如何将其与枚举列表的值进行比较,以便将值分配给我设置为的变量: 我了解我需要浏览枚举列表。但是,由于值不是字符串类型,如何比较?这就是我盲目输入的内容。我不知道这是否正确。 问题答案: 试试这个 您可能要处理IllegalArgumentException,如果“ s”值与

  • 我对OffsetDateTime的用法非常陌生,我正在尝试将OffsetDateTime字符串与OffsetDateTime进行比较。以这种方式在java中使用now(), 但我正在学习java。时间总体安排所有3种情况下的DateTimeParseException。 然而,如果我将2个OffsetDateTime字符串与CompareTo方法进行比较,它的工作就很好了。 有没有人能在这方面给我

  • 问题内容: 我遇到了我认为应该是一个非常简单的问题。 我需要将arrayList中的每个项目与列表中的其他所有项目进行比较,而无需将项目与其自身进行比较。它不像调用equals()比较那样简单,它涉及一些自定义逻辑,我在下面的代码中省略了这些自定义逻辑。而且,ArrayList不应以任何方式更改。 我似乎遇到的问题是,一旦进入第二个循环,我就不知道是否有另一个对象要与之比较(因为它是一个可变大小的

  • 问题内容: 我希望能够从突出显示的文本部分中获取字符串,我该如何处理? 问题答案: 对于或小部件,您可以使用: 从Python控制台的Entry和Text小部件中获取选定文本的交互式示例: 根据布莱恩·奥克利(Bryan Oakley)的评论: 是可用于所有小部件的通用小部件方法。它并不 总是 从“文本”小部件中获取选定的字符串。可以,但不能保证。它所做的就是得到所谓的“ X”选择(来自tk的X1