编写一个JFrame窗口,要求如下: 1. 在窗口的NORTH区放置一个JPanel面板。 2. JPanel面板放置如下组件: (1) JLable标签,标签文本为“兴趣”,右边接着是三个JChec

本文介绍了一个使用Java Swing创建GUI应用的例子,演示了如何通过JCheckBox和JRadioButton实现多选与单选功能,并利用ItemListener监听选择状态变化,更新文本区域显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class Frame extends JFrame {
	JButton button;
	JCheckBox checkBox1,checkBox2,checkBox3;//三个JCheckBox多选按钮
	 JLabel jlable1,jlable2;  //JLable标签
    JRadioButton radio1,radio2;//两个JRadioButton按钮
	 JPanel jpanel; //面板
	 Box box1,box2;
	 ButtonGroup group;
	JScrollPane scrollPane;
    GridLayout glayout;
    JTextArea textArea;//文本
    Listener listener;
  public Frame(){ //构造方法
	 init();
	 click();
	 setVisible(true);//视图可见
	 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }	
	private void click() {
		checkBox1.addItemListener( listener); //为每个按钮设置监听器
		checkBox2.addItemListener( listener);
		checkBox3.addItemListener( listener);
		radio1.addItemListener( listener);
		radio2.addItemListener(listener);
	}
	private void init() {
	jpanel=new JPanel(new GridLayout(2,2)); //定义GridLayout为两行
    JLabel  jlable1  = new JLabel("兴趣:");     
	checkBox1=new JCheckBox("羽毛球");
	checkBox2=new JCheckBox("乒乓球");
	checkBox3=new JCheckBox("唱歌");
	add(checkBox1);
	add(checkBox2);
	add(checkBox3);
 JLabel  jlable2  = new JLabel("兴趣:");
	group=new  ButtonGroup();
	radio1=new  JRadioButton("男");
	radio2=new  JRadioButton("女");
	group.add(radio1);
	group.add(radio2);
	add(radio1);
	add(radio2);
	Box box1=Box.createHorizontalBox();//行型Box容器
	box1.add(Box.createHorizontalStrut(3));//设置标签按钮间距
    box1.add( jlable1 );
    box1.add(checkBox1 );
    box1.add(checkBox2 );
    box1.add(checkBox3);        
	Box box2=Box.createHorizontalBox();//行型Box容器
	box1.add(Box.createHorizontalStrut(3));//设置标签按钮间距
    box1.add( jlable2 );
    box1.add(radio1 );
    box1.add(radio2);
    jpanel.add(box1) ;//两个行型Box容器放入JPanel面板中
    jpanel.add(box2) ;
	//scrollPane部分
     textArea=new JTextArea();//文本区域
      scrollPane = new JScrollPane(textArea);
       add(jpanel,BorderLayout.NORTH);
       add(scrollPane,BorderLayout.CENTER);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  this.setTitle("JFrame窗口");//设置窗口属性
	  this.setSize(500,400);
	  this.setLocation(400, 400);
	  this.setVisible(true);
	  listener=new Listener();
	}
	private class Listener implements ItemListener {      //创建监视器  
		        public void itemStateChanged(ItemEvent e) {  
		            String str = "";              //设置按钮的文本内容  
		            if(	checkBox1.isSelected())  
		                str+=checkBox1.getText()+"\n";  
		            if(	checkBox2.isSelected())  
		                str+=checkBox2.getText()+"\n";  
		            if(	checkBox3.isSelected())  
		                str+=checkBox3.getText()+"\n";  
		            if(radio1.isSelected())  
		                str+=radio1.getText()+"\n";  
		            if(radio2.isSelected())  
		                str+=radio2.getText()+"\n";  
		            textArea.setText("");  
		            textArea.append(str);  
		        }         
	}


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

运行结果:

分析:事件的三要素:事件源、事件类型、事件监听器。产生事件的组件叫事件源。负责处理事件的对象称为事件监听器。事件监听器就是实现了监听器接口的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值