首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JToggleButton -如何获取选中状态?

JToggleButton -如何获取选中状态?
EN

Stack Overflow用户
提问于 2015-06-16 09:08:05
回答 1查看 1K关注 0票数 0

我正在做一个BMR计算器,我的一个面板让用户可以选择如何输入他们的身高,从厘米到英尺/英寸。

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

代码语言:javascript
复制
    // 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()。

下面是这张图片的外观。您可以看到,即使选择了英尺,也不会显示任何文本字段。我能做些什么来解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2015-06-16 11:25:17

您需要添加一个监听器:

代码语言:javascript
复制
cmButton.addActionListener(event->{

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

feetButton.addActionListener(event-> {

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

如果您使用的是JToggleButton,我想您只需要使用一个ToggleButton来切换您的图形用户界面。因此,如果是这种情况,请删除cmButtonfeetButton。并且只添加一个完成所有任务的新ToggleButton。

代码语言:javascript
复制
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`.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30857345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档