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

JToggleButton-如何获取选定状态?

暴才俊
2023-03-14

我正在制作一个BMR计算器,我的一个面板为用户提供了一个选项,可以改变他们输入身高的方式,从厘米到英尺/英寸。

下面是处理上述面板的代码块。

    // Height JComponents
    heightLabel = new JLabel("Height:");
    heightCMField = new JTextField(4);
    heightFTField = new JTextField(3);
    heightFTLabel = new JLabel("ft");
    heightINCHLabel = new JLabel("inch");
    heightINCHField = new JTextField(3);
    cmButton = new JToggleButton("cm");
    feetButton = new JToggleButton("feet");
    heightPanel.add(heightLabel);


    if (cmButton.isSelected()) {
        heightPanel.add(heightCMField);
    } else if (feetButton.isSelected()) {
        heightPanel.add(heightFTField);
        heightPanel.add(heightFTLabel);
        heightPanel.add(heightINCHField);
        heightPanel.add(heightINCHLabel);
    } 

    heightPanel.add(cmButton);
    heightPanel.add(feetButton);

我的问题是,当我按下kg或cm按钮时,文本字段不会出现,因此我认为我使用的isSelected()有点错误。

下面是一幅关于这种情况的图像。您可以看到,即使选择了脚,也不会显示任何文本字段。我能做些什么来解决这个问题?

共有1个答案

傅越
2023-03-14

您需要添加一个监听器:

cmButton.addActionListener(event->{

    /**
     * Code to show heightCMField.
     */
});

feetButton.addActionListener(event-> {

    /**
     * COde to show heightFTField and heightINCHField 
     */
});  

如果您使用的是JTougleButton,我想您只需要使用一个切换GUI的切换按钮。所以如果是这样的话,删除cmButtonfeetButton。只添加一个新的切换按钮来完成这一切。

JToggleButton switchButton = new JToggleButton();
switchButton.setText("cm");  

switchButton.addActionListener(event->{

    if(switchButton.getText().equals("feet")) {

        switchButton.setText("cm");
        /* Code to show heightFTField and heightINCHField */
    } else if(switchButton.getText().equals("cm")) {

        switchButton.setText("feet");
        /* Code to show heightCMField */
    }
});  

You can also go for `ItemListener`.
 类似资料:
  • 问题内容: 说我有一个 现在,我需要单击它的状态。我的意思是我需要知道是否单击了它。 问题答案: 您还可以使用itemListener的itemStateChanged方法,如下所示: 并且您想知道后者使用方法的状态

  • 问题内容: 我有一个带有属性的元素。如何使用JavaScript获取此元素的选定值? 这是我正在尝试的: 问题答案: 没有jQuery: 快速示例:

  • 问题内容: 所以我试图获取我选择的行的textLabel的值。我尝试打印它,但是没有用。经过研究,我发现该代码有效,但仅在Objective-C中有效。 我找不到Swift的任何解决方案。虽然可以打印indexpath.row,但这不是我所需要的。 所以我该怎么做?或此代码的“快速版本”是什么? 问题答案: 试试这个:

  • 我通过JFileChooser使用下面这段代码将一个名为test.xml的文件添加到我的JList中; 现在我必须从Jlist中选择一个文件,然后将它转换成另一个文档。如果我给出输入,转换步骤就会起作用; 但是如果我给它,它就不起作用; 列表及其向量使用以下代码段创建: 你们谁能告诉我如何从JList中选择该特定文件来进行转换吗?提前感谢…!

  • 问题内容: 我已经编辑了数据,并试图仅获取用户已选择的数据。我不确定该怎么做,这就是我所拥有的: HTML: JS: 我确实以一种方式使它工作-通过向每个对象添加属性并将复选框的更改为,然后可以在函数中对此进行过滤。但是,这似乎效率很低,如果可以避免,我不想在模型中添加额外的属性。 有没有更好的办法 ? 问题答案: 的JavaScript HTML http://plnkr.co/edit/lqt

  • 我试图读取一堆格式相同的word docx文件,并将数据提取到数据库中。我对文本没有任何问题,但我在与复选框作斗争。我需要说的是,我是docx4j的新手,但已经在这个问题上挣扎了四天了。我真的很重视一些帮助/帮助/建议。 结果是: 现在,我已经为包含一个难以捉摸的复选框的单元格添加了mainDocumentPart.getXML()的输出。我在那里看不到任何东西告诉我价值。谁能告诉我我错过了什么吗