Java Swing控件------单选框和复选框

1.一个简单的注册界面程序

·
一开始单选框两个框都可以选,后来发现是没有将选项框加入到ButtonGroup里面。加进去之后就可以只能单选了

2.代码

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

public class enroll extends JFrame implements ActionListener
{
	JPanel jp = new JPanel();
	//标签数组
	JLabel[] jlArray = {new JLabel("性别"),new JLabel("爱好"),new JLabel("输入内容为:")};
	//单选框数组
	JRadioButton[] jrbArray = {new JRadioButton("男"),  new JRadioButton("女")};
	//复选框数组
	JCheckBox[] jcbArray = {new JCheckBox("健身"),new JCheckBox("上网")};
	//按钮数组
	JButton[] jbArray = {new JButton("提交"),new JButton("清空")};
	//文本框
	JTextField jtf =new JTextField();
	//按钮组
	ButtonGroup bg = new ButtonGroup();
	
	//构造器
	public enroll() 
	{
		//设置布局管理器
		jp.setLayout(null);
		//对控件进行设置
		for(int i = 0;i<2;i++)
		{
			//设置各个控件的大小和位置
			jlArray[i].setBounds(20, 20+i*50, 80, 30);
			jrbArray[i].setBounds(40+i*100, 40,80,30);
			jcbArray[i].setBounds(40+i*100, 100,80,30);
			jbArray[i].setBounds(400+i*120,200,80,26);
			
			//把单选框添加到按钮组中
			bg.add(jrbArray[i]);
			
			//给单选框和复选框、按钮添加监听事件
			jrbArray[i].addActionListener(this);
			jcbArray[i].addActionListener(this);
			jbArray[i].addActionListener(this);
			
			//添加带jpanel中
			jp.add(jlArray[i]);
			jp.add(jrbArray[i]);
			jp.add(jcbArray[i]);
			jp.add(jbArray[i]);	
		}
		jlArray[2].setBounds(20,150,120,30);
		jp.add(jlArray[2]);
		
		jtf.setBounds(120,150,500,26);
		jp.add(jtf);
		
		//设置文本框为不可编辑状态
		jtf.setEditable(false);
		
		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) {
		// TODO Auto-generated method stub
		if (e.getSource()==jbArray[1])
		{
			//清空按钮执行的动作
			bg.clearSelection();
			for(int i=0;i<2;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()-2));
				jtf.setText(temp1.append("。").toString());
			}
		}
		

		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		enroll e =new enroll();
	}


}

3.运行结果

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 【关键字】设计 Java高级程序设计第二学期 期末复习题 判断题 1. 2. java.awt包是Java语言用来构建图形用户界面(GUI)的类库。( ) 3. 容器,一个容器可以容纳多个构件,并使他们成为一个整体。( ) 4. Java中所有的类都是通过直接或间接地继承 5. Java的图形用户界面的最基本的组成部分就是构件(Component)。( ) 6. 在Swing中用重量级的构件替代了AWT中的轻量级的构件。(X) 7. 与AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(contentPane)上。( ) 8. 类Panel默认的布局管理器是GridLayout。(X) 9. 每个Java小应用程序必须定义为Jframe类的子类。( ) 10. 使用UDP通信时,用DatagramPacket类把要发送的信息打包。( ) 11.AWT组件称为重型组件( ) 12.Swing组件称为轻型组件( ) 13.容器类不是GUI组件(X) 14.使用add方法可以在框架的内容窗格中添加组件( ) 15.FlowLayout 是最简单的布局管理器( ) 16.布局管理器GridLayout不是以网格(矩阵)的形式排列组件(X) 17.布局管理器的属性不可以动态的改变(X) 18.每一时刻,一个容器只能有一个布局管理器( ) 19.要创建一个用户界面,需要创建一个框架或applet来存放用户界面组件( ) 20.Component类是所有用户界面的父类( ) 21. JFrame实例可以添加到容器中。( F ) 22. JCheckBox继承了AbstractButton类的所有属性。( T ) 23. JTextArea可以让用户输入多行文字。( T ) 24. JSlider与JScrollbor类似,但是JSlider具有更多的属性和更多是显示形式。( T ) 25.JTextField类继承了JTextComponent类,而JTextComponent类继承JComponent类。( T ) 26. 从应用程序创建一个子窗口,不用先创建JFrame的一个子类。( F ) 27. 在一个文本域中按下回车键就触发了ActionEvent事件。( T ) 28. Java使用事件委托处理模型来处理事件,源东西和监听东西可以是同一个东西。( T ) 29. JDBC是指Java程序与数据库连接的一种机制。( T ) 30.可以给一个面板添加框架。(F ) 31. File类提供实现文件读写的操作方法。 (T) 32. (T) 33.垂直文本位置指定文本相对于图标的垂直位置。(T) 34.不可以同时设置按钮上的文本和图标。(F) 35.标签是显示一小段文字、一幅图片或者二者皆有的区域。(T) 36.组合框是包含项目的一个列表,用户可以从中进行选则。(T) 37. 用read()方法读取文件内容时,返回-1表示文件结束。(F) 【设计】java高级程序设计期末复习题全文共16页,当前为第1页。38. PrintWriter类和PrintStream类可以以文本方式输入基本类型数据值、字符串和东西。(F) 【设计】java高级程序设计期末复习题全文共16页,当前为第1页。 39. 代表优先级的常数值越大优先级越低 (F) 40. 线程一旦被创建,则自动运行 (F ) 二、单选题 1、下列关于Java线程的说法那些是正确的( B ) A、每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。 B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。 C、Thread类属于java.util程序包。 D、以上说法无一正确。 2、运行下列程序, 会产生什么结果?( D ) public class X extends Thread implements Runable{ public void run(){ "this is run()"); } public static void main(String args[]) { Thread t=new Thread(new X()); t.start(); } } A、第一行会产生编译错误 B、第六行会产生编译错误 C、第六行会产生运行错误 D、程序会运行和启动 3、下列选项中,用于定义接口的关键字是( C ) A、import B、implements C、interface D、protected 4.定义类头时能使用的修饰符是( C )。 A) private B) static C) abstract D) pr

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值