package com.whut.sw;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Lianxi extends JFrame implements ActionListener{
//创建JPanel对象
private JPanel jp = new JPanel();
//创建复选框数组
private JCheckBox[] jcbArray = {new JCheckBox("上网"),new JCheckBox("运动")};
//创建单选框按钮数组
private JRadioButton[] jrbArray = {new JRadioButton("男"),new JRadioButton("女",true)};
//创建按钮数组
private JButton[] jbArray = {new JButton("提交"),new JButton("清空")};
//创建标签数组
private JLabel[] jlArray = {new JLabel("性别"),new JLabel("爱好"),new JLabel("输入内容为:")};
//创建文本框
private JTextField jtf = new JTextField();
//创建按钮组
private ButtonGroup bg = new ButtonGroup();
public Lianxi(){
//设置JPanel布局管理器
jp.setLayout(null);
//对各个控件进行控制
for(int i=0;i<2;i++){
//设置单选按钮与复选按钮的大小与位置
jrbArray[i].setBounds(40+i*100, 40, 80, 30);
jcbArray[i].setBounds(40+i*120, 100, 120, 30);
//将单选按钮与复选按钮添加到JPanel中
jp.add(jrbArray[i]);
jp.add(jcbArray[i]);
//为单选按钮与复选按钮,注册动作事件监听器
jrbArray[i].addActionListener(this);
jcbArray[i].addActionListener(this);
//将单选按钮添加到按钮组中
bg.add(jrbArray[i]);
if(i>1) continue;
//设置标签与普通按钮的大小位置
jlArray[i].setBounds(20, 20+i*50, 80, 30);
jbArray[i].setBounds(400+i*120, 200, 80, 26);
//将标签与普通按钮添加到JPanel中
jp.add(jlArray[i]);
jp.add(jbArray[i]);
//为普通按钮,注册动作监听器
jbArray[i].addActionListener(this);
}
//设置调查结果的标签的大小位置,并将其添加到JPanel中
jlArray[2].setBounds(20, 150, 120, 30);
jp.add(jlArray[2]);
//设置调查结果的文本框的大小位置,并将其添加到JPanel中
jtf.setBounds(120, 150, 500, 26);
jp.add(jtf);
//设置显示调查结果的文本框为不可编辑状态
jtf.setEditable(false);
//将JPanel添加到窗体
this.add(jp);
//设置窗体的标题、大小位置及可见性
this.setTitle("注册页面");
this.setBounds(100, 100, 700, 280);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jbArray[1]){
//执行“清空”操作
bg.clearSelection();
for(int i=0;i<jcbArray.length;i++)
jcbArray[i].setSelected(false);
jtf.setText(" ");
}
else{
//创建两个临时字符串
StringBuffer temp1 = new StringBuffer("你是一个");
StringBuffer temp2 = new StringBuffer();
for(int i=0;i<2;i++){
//获取年龄段的选中值
if(jrbArray[i].isSelected()){
temp1.append(jrbArray[i].getText());
}
//获取爱好的选中值
if(jcbArray[i].isSelected()){
temp2.append(jcbArray[i].getText());
}
}
//打印结果
if(temp2.length()==0){
//如果没有选取爱好
jtf.setText("兴趣爱好选项不能为空!!!");
}
else
{
//选取了爱好
temp1.append("生,你比较喜欢");
temp1.append(temp2.substring(0,temp2.length()));
jtf.setText(temp1.append("。").toString());
}
}
}
public static void main(String[] args) {
Lianxi x = new Lianxi();
}
}
创建一个有单选框、复选框、文本框、确认和清空按钮的注册页面,代码如下(这里给出代码的地址):
https://code.csdn.net/snippets/341354
结果如下: