需要禁用按钮,具体取决于是否选择了单选按钮

时间:2017-06-19 03:29:19

标签: java user-interface button calculator windowsbuilder

我正在尝试在程序员模式下编写功能齐全的Windows 7计算器。现在,我正在努力让按钮正常工作。因此,我希望在选择hex的单选按钮之前禁用将用于hexa的按钮。因此,在dec或Bint模式下,A-F按钮将被禁用,直到被选中为止。

这是按钮A:

JButton button_A = new JButton("A");
button_A.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        button_A.setEnabled(false);
        hexDisable();
        textField.setText(textField.getText() + "A");
    }
});

这是单选按钮:

JRadioButton rButton_Hex = new JRadioButton("Hex");
rButton_Hex.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        hexDisable();
    }
});
rButton_Hex.setBounds(9, 218, 54, 23);
contentPane.add(rButton_Hex);
Group1.add(rButton_Hex);

这是启用和禁用相应按钮的方法。

public void hexDisable(){
    button_A.setEnabled(true);
}

我非常擅长在Java中使用GUI。

2 个答案:

答案 0 :(得分:0)

只需在 RadioGroup 上制作setOnCheckedChangeListener:

RadioGroup radG = (RadioGroup) findViewById(R.id.yourRadioGroup);        
radG.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // checkedId is the RadioButton selected
        switch(checkedId) 
        {
        case R.id.hexa:     
        //enable or disable button
        break;

        case R.id.normal: 
        //enable or disable button        
        break;

        case R.id.other:  
        //enable or disable button       
        break;
        }
    }
});

答案 1 :(得分:0)

它只是导入所需的目录,然后JRadioButton被初始化为“NULL”,用于打开和关闭,然后只是添加到ButtonGroup!

Import Javax.swing.Jframe;
Private JRadioButton rdbtnOn=null;
Private JRadioButton rdbtnOff=null;
Private ButtonGroup bg = new ButtonGroup();
bg.add(rdbtnOn);
bg.add(rdbtnOFF);