java 对象和框架不工作

标签 java jframe actionlistener

<分区>

我正在尝试创建一个简单的程序,当按下特定的单选按钮时,它会更改某些文本框中的文本。这是我第一次使用 Java,所以我不确定我错过了什么。这是我的代码。

public abstract class DoctorOption extends JFrame implements ActionListener {
    JTextField myTxt = new JTextField(30);
    JButton submit = new JButton("Submit");
    JRadioButton mywellRB = new JRadioButton("click here if you are well", true);
    JRadioButton myunwellRB = new JRadioButton("click here if you are unwell", false);

    public static void main(String[] args) {
        new DoctorOption() {
        };
    }

    public DoctorOption() {
        setSize(400, 120);
        setTitle("Doctor Option");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        add(myTxt);
        add(mywellRB);
        add(myunwellRB);
        add(submit);
        submit.addActionListener(this);
        myunwellRB.addActionListener(this);
        mywellRB.addActionListener(this);
        setVisible(true);

        ButtonGroup buttons = new ButtonGroup();
        buttons.add(mywellRB);
        buttons.add(myunwellRB);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == mywellRB) {
            myTxt.setText("in the pink! ");
            myTxt.setBackground(Color.pink);
        }
    }
}

请你帮我理解我做错了什么,谢谢!

最佳答案

我看到的问题是,您没有使用任何布局,这意味着它将默认为 BorderLayout。 BorderLayout 默认将所有内容都放在 BorderLayout.CENTER 中,因此您会看到一件事占据了整个窗口。将这行代码放入您的构造函数中:

  setLayout(new FlowLayout());

For more info on Layouts

关于java 对象和框架不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33709943/

相关文章:

java - JFrame 更改边框颜色

java - selenium webdriver无法找到隐藏在div中的元素

java - 从 Swing GUI 编译和运行 Java 代码

java - 如何关联ga :campaign and ga:pagePath (content) on Google Analytics Export API?

java - 按下 X 按钮时复选框状态更改

java - ActionListener 没有实现

java - 处理:发送和接收自定义事件

java - 将 MouseAdapter 添加到 JFrame

java - 如何在java中为多个按钮设置相同的操作/过程

java - 为什么我无法将 getActionCommand() 与匹配的字符串值进行比较?