0

我正在尝试在程序员模式下编写功能齐全的 Windows 7 计算器。现在,我正在努力让按钮正常工作。因此,我希望禁用将用于 hexa 的按钮,直到选择 hex 的单选按钮。因此,在 dec 或 Bint 模式下,AF 按钮将被禁用,除非以其他方式选择它。

这是按钮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 非常陌生。

4

2 回答 2

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;
        }
    }
});
于 2017-06-19T03:41:07.110 回答
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);
于 2017-06-19T05:08:43.310 回答