我不知道如何用java制作下拉列表

我不知道如何用java制作下拉列表,java,swing,Java,Swing,(使用netbeans和java) 当在任一输入中输入一个数字时,当按下计算按钮时,即进行计算,例如,如果我在输入1中输入2,然后单击按钮=输入1*5,则答案显示在答案字段中 当2被放入输入2=(输入2+10)*5时 当2放入输入3=输入3+5% 我想要一个下拉列表和一个输入,而不是3个输入字段 因此,您可以从下拉列表中选择您想要的,并且只有一个输入字段 我不知道如何做下拉等,任何帮助将不胜感激 编辑 有人知道如何在加载时隐藏3个输入,然后在从组合框中选择后显示相关输入吗?在大多数UI中,下拉

(使用netbeans和java)

当在任一输入中输入一个数字时,当按下计算按钮时,即进行计算,例如,如果我在输入1中输入2,然后单击按钮=输入1*5,则答案显示在答案字段中 当2被放入输入2=(输入2+10)*5时 当2放入输入3=输入3+5%

我想要一个下拉列表和一个输入,而不是3个输入字段

因此,您可以从下拉列表中选择您想要的,并且只有一个输入字段

我不知道如何做下拉等,任何帮助将不胜感激


编辑
有人知道如何在加载时隐藏3个输入,然后在从组合框中选择后显示相关输入吗?

在大多数UI中,下拉菜单称为组合框。Java swing对象是JComboBox

这是文件:

和教程:

在大多数UI中,下拉列表称为组合框。Java swing对象是JComboBox

这是文件:

和教程:

很抱歉造成混淆

请忽略其他帖子


用户回答:意大利 两种方法:

(1) 使用setVisible-创建字段时,在每个字段上调用setVisible(false)。在组合框中进行选择时,在相关输入字段中调用setVisible(true),在其他字段中调用setVisible(false)


(2) 使用一个输入字段-当在组合框上进行选择时,请更改其名称

很抱歉造成混淆

请忽略其他帖子


用户回答:意大利 两种方法:

(1) 使用setVisible-创建字段时,在每个字段上调用setVisible(false)。在组合框中进行选择时,在相关输入字段中调用setVisible(true),在其他字段中调用setVisible(false)

(2) 使用一个输入字段-在组合框上进行选择时更改其名称

我尝试了一下(希望这是您想要的)

既然已经提供了所有这些链接和教程,您应该能够做到这一点(IMO)

这就是它看起来的样子:

它确实进行适当的异常处理,对结果进行取整,并且真正面向对象(只使用硬编码索引,更改时要小心)


在我的例子中,添加组件(称为
txtInput
cmbChoose
btnDo
txtResult

使用组合框模型编辑器编辑
JComboBox
模型
属性,并将其设置为

x5
plus10
plus5perc
这将生成以下源:

cmbChoose.setModel(new javax.swing.DefaultComboBoxModel(
    new String[] { "x5", "plus10", "plus5perc" }));
将以下内容放入
JButton
s
ActionPerformed
方法中

try {
    float input = Float.valueOf(txtInput.getText());
    float output = 0;

    switch (cmbChoose.getSelectedIndex()) {
        case 0:
            output = input * 5; break;
        case 1:
            output = input + 10; break;
        case 2:
            output = input * 1.05f;
    }

    txtResult.setText(String.valueOf(output));
} catch (Exception e) {
    txtResult.setText("[Error]");
}
我试了一下(希望这是你想要的)

既然已经提供了所有这些链接和教程,您应该能够做到这一点(IMO)

这就是它看起来的样子:

它确实进行适当的异常处理,对结果进行取整,并且真正面向对象(只使用硬编码索引,更改时要小心)


在我的例子中,添加组件(称为
txtInput
cmbChoose
btnDo
txtResult

使用组合框模型编辑器编辑
JComboBox
模型
属性,并将其设置为

x5
plus10
plus5perc
这将生成以下源:

cmbChoose.setModel(new javax.swing.DefaultComboBoxModel(
    new String[] { "x5", "plus10", "plus5perc" }));
将以下内容放入
JButton
s
ActionPerformed
方法中

try {
    float input = Float.valueOf(txtInput.getText());
    float output = 0;

    switch (cmbChoose.getSelectedIndex()) {
        case 0:
            output = input * 5; break;
        case 1:
            output = input + 10; break;
        case 2:
            output = input * 1.05f;
    }

    txtResult.setText(String.valueOf(output));
} catch (Exception e) {
    txtResult.setText("[Error]");
}

谢谢。我试过谷歌搜索,看了看,不懂伊托克。这个教程已经很清楚了。组合框的基本思想是用一个数据对象(最简单的列表)填充它们,在组合框中注册一个更改侦听器。更改侦听器是所有“智能”的所在无论用户选择的内容传递给事件处理程序,都要检查(使用if-elseif或开关)并在你的应用程序中做一些事情。希望对你有帮助谢谢。我试过谷歌搜索,看了看,不明白它的意思。这个教程非常清楚。组合框的基本思想是用数据对象(最简单的列表)填充它们,将更改侦听器注册到组合框中。更改侦听器是所有“智能”的所在位置。无论用户选择的内容传递给事件处理程序,您都要进行检查(使用if-elseif或开关)并在你的应用程序中做一些事情。希望能帮助你避免重复:可能是同学/家庭作业。这个是在它之前做的,不是家庭作业。背景:这个应用程序是一家出租车公司的计算器。(参见我的其他帖子)---编辑---另一个是我的同事,他曲解了我的电子邮件。忽略另一个,请使用这个:可能是同学/家庭作业。这个是在它之前制作的,不是家庭作业。背景:这个应用程序是一家出租车公司的计算器。(参见我的其他帖子)---编辑---另一个是我的同事,他误解了我的电子邮件。忽略另一个,请使用这个。你如何将字段设置为setVisible false?会是什么事件?你如何将字段设置为setVisible false?会是什么事件?谢谢。我稍微更改了你的代码。我使用的不是float而是double,我使用的是double实现了十进制格式以对数字进行四舍五入。我已将异常更改为显示jOtionPane感谢您的帮助谢谢。我已稍微更改了您的代码。我使用了双精度浮点,并实现了十进制格式以对数字进行四舍五入。我已将异常更改为显示jOtionPane感谢您的帮助