java swing 如何输入男/女,然后自动勾选男/女的按钮

在文本框中输入男,按回车自动勾选男的按钮,代码应该怎么写,java swing

帮你写了个小demo

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main {
    public static void main(String[] args) {
        new MyFrame();
    }
}

class MyFrame extends JFrame{
    JTextField textField;
    JRadioButton male;
    JRadioButton female;
    ButtonGroup btnGroup;

    public MyFrame(){

        Dimension screen = getToolkit().getScreenSize(); // 得到屏幕尺寸
        int height = (int) (screen.height / 1.2);
        this.setBounds(200, 20, (int) (height / 0.618), height);

        this.setLocation((screen.width - getSize().width) / 2, (screen.height - getSize().height) / 2); // 设置窗口位置

        this.setLayout(new FlowLayout());

        textField = new JTextField(10);
        male = new JRadioButton("男");
        female = new JRadioButton("女");
        btnGroup = new ButtonGroup();
        btnGroup.add(male);
        btnGroup.add(female);

        this.add(textField);
        this.add(male);
        this.add(female);

        //监听这个文本框输入的文字
        MyActionListener2 myActionListener2 = new MyActionListener2(btnGroup, male, female);
        //按下enter,就会触发输入框的事件
        textField.addActionListener(myActionListener2);

        this.setResizable(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
}
class MyActionListener2 implements ActionListener{

    ButtonGroup btnGroup;
    JRadioButton male;
    JRadioButton female;

    public MyActionListener2(ButtonGroup btnGroup, JRadioButton male, JRadioButton female) {
        this.btnGroup = btnGroup;
        this.male = male;
        this.female = female;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        JTextField field = (JTextField)e.getSource();//获得一些资源,返回一个对象
        String text = field.getText();
        if ("男".equals(text))
            btnGroup.setSelected(male.getModel(), true);
        else if ("女".equals(text))
            btnGroup.setSelected(female.getModel(), true);
        field.setText("");//空文本
    }
}


用 jradiobutton实现勾选

代码参考

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Test extends JFrame {
    private JTextField textField;
    private JRadioButton maleButton, femaleButton;
    private ButtonGroup genderGroup;

    public Test() {
        super("Test");

        // 设置窗口大小和布局
        setSize(300, 150);
        setLayout(new GridLayout(3, 1));

        // 添加文本框和标签
        JPanel panel1 = new JPanel();
        JLabel label = new JLabel("请输入性别:");
        textField = new JTextField(10);
        panel1.add(label);
        panel1.add(textField);
        add(panel1);

        // 添加男性单选按钮
        JPanel panel2 = new JPanel();
        maleButton = new JRadioButton("男");
        panel2.add(maleButton);
        add(panel2);

        // 添加女性单选按钮
        JPanel panel3 = new JPanel();
        femaleButton = new JRadioButton("女");
        panel3.add(femaleButton);
        add(panel3);

        // 创建按钮组,将男性和女性单选按钮添加到按钮组中
        genderGroup = new ButtonGroup();
        genderGroup.add(maleButton);
        genderGroup.add(femaleButton);

        // 添加事件监听器,处理输入性别后自动选择相应的单选按钮
        textField.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String gender = textField.getText();
                if (gender.equals("男")) {
                    maleButton.setSelected(true);
                } else if (gender.equals("女")) {
                    femaleButton.setSelected(true);
                } else {
                    JOptionPane.showMessageDialog(Test.this, "请输入“男”或“女”!");
                }
            }
        });

        // 设置窗口可见
        setVisible(true);
    }

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

凑个热闹:

import java.awt.FlowLayout;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class Demo extends JFrame {

    JRadioButton man = new JRadioButton("Man"), //单选按钮:男
            woman = new JRadioButton("Woman"); //单选按钮:女
    ButtonGroup sex = new ButtonGroup(); //男女二选一

    JTextField textField = new JTextField(32); //文本框

    public Demo() {
        sex.add(man); //这些不重要:
        sex.add(woman);

        this.setTitle("Demo.java");
        this.setSize(380, 240);
        this.setLayout(new FlowLayout());
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.add(man);
        this.add(woman);
        this.add(textField);

        textField.addActionListener(e -> { //重点:
            String text = textField.getText(); //获取文本框文本
            if (text.equals("男") || text.equals("Man"))
                man.setSelected(true); //如果文本是男,自动勾选
            else if (text.equals("女") || text.equals("Woman"))
                woman.setSelected(true); //如果是女,勾选
            textField.setText(""); //清空文本
        });
    }

    public static void main(String[] args) {
        new Demo().setVisible(true);
    }
}
///:~