在文本框中输入男,按回车自动勾选男的按钮,代码应该怎么写,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);
}
}
///:~