简体   繁体   English

JRadiobutton ActionListener没有响应

[英]JRadiobutton ActionListener not responding

I'm registering the events for two JRadiobuttons, but nothing happens! 我正在为两个JRadiobuttons注册事件,但是什么也没有发生! No errors are thrown, so I'm not being able to trace back the problem.. When selecting the first radio button, it should print out a text. 没有引发任何错误,因此我无法追溯问题。.选择第一个单选按钮时,它应该打印出文本。 When selecting the second button, it should print out a different text.... 选择第二个按钮时,它应打印出不同的文本。

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;


public class num2 extends JFrame  {
    private static JLabel type;
    private static JLabel days;
    private static JLabel amt;
    private static JRadioButton checkStandard;
    private static JRadioButton checkExecutive;
    private static JTextField txtDays;
    private static JTextField txtAmount;
    private static JButton btnCalculate;
    private static ButtonGroup group = new ButtonGroup();

    public num2(){
        super("Testing Events");
        JPanel p = new JPanel();
        JLabel type = new JLabel("Room Type : ");
        JLabel days = new JLabel("Number Of Days : ");
        JLabel amt = new JLabel("Total Amount : ");

        JRadioButton checkStandard = new JRadioButton("Standard");
        JRadioButton checkExecutive = new JRadioButton("Executive");




        p.setLayout(new FlowLayout());


        group.add(checkStandard);
        group.add(checkExecutive);
        p.add(checkStandard);
        p.add(checkExecutive);
        TheHandler handler = new TheHandler();
        checkStandard.addActionListener(handler);
        checkExecutive.addActionListener(handler);
        add(p);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(100, 100);
        setVisible(true);

    }

    public static void main(String[] args) {
        num2 app = new num2();


    }


private class TheHandler implements ActionListener{
    public void actionPerformed(ActionEvent evt) {
        Object source = evt.getSource();
        if (source == checkStandard) {
            System.out.println("Done");
         }
        else if(source == checkExecutive){
            System.out.println("nope");
        }

}
}



}

You're shadowing both JRadioButton variables 您正在遮盖两个JRadioButton变量

JRadioButton checkStandard = new JRadioButton("Standard");
JRadioButton checkExecutive = new JRadioButton("Executive");

should be 应该

checkStandard = new JRadioButton("Standard");
checkExecutive = new JRadioButton("Executive");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM