博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javagui作业2
阅读量:3898 次
发布时间:2019-05-23

本文共 2794 字,大约阅读时间需要 9 分钟。

作业:
编写一个JFrame窗口,要求如下:
1. 在窗口的NORTH区放置一个JPanel面板。
2. JPanel面板放置如下组件:
(1) JLable标签,标签文本为“兴趣”,右边接着是三个JCheckBox多选按钮,选项分别是“羽毛球”、“乒乓球”、“唱歌”。可以多选。
(2) JLabel标签,标签文本为“性别”,右边接着是两个JRadioButton按钮,选项分别是“男”、“女”。置成单选按钮,提示:使用ButtonGroup类 。
(3) 兴趣标签及按钮放在第一行,性别标签及按钮放在第二行,分别借助两个行型Box容器安排这两行组件的位置,而两个行型Box容器放入JPanel面板中,要两行组件对齐的话,可以把JPanel面板设置两行一列的GridLayout布局。
3. 窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域。

4. 当点击JCheckBox多选按钮和JRadioButton按钮时,如果是选中操作,则把选中项的文本显示在JTextArea文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。

package zc171119;import javax.swing.*; import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class frame extends JFrame implements ActionListener{	   JLabel l1,l2;	   JCheckBox c1,c2,c3;	   JRadioButton r1,r2;	   Box b1,b2;	   ButtonGroup bg;	   Container contentPane;	   JScrollPane js;	   JTextArea jt;	public frame(String name) {		// TODO Auto-generated constructor stub		  super(); 		  contentPane = getContentPane();		 setSize(300, 300);          setVisible(true);      	setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);      	   JPanel p1=new JPanel();      	   jt=new JTextArea();      	       	     js=new JScrollPane(jt);//文本域加入jscrollpane       contentPane.add(p1,BorderLayout.NORTH);       contentPane.add(js,BorderLayout.CENTER);       p1.setLayout(new GridLayout(2, 1));                l1=new JLabel("兴趣");         l2=new JLabel("性别");         c1=new JCheckBox("羽毛球");         c2=new JCheckBox("乒乓球");         c3=new JCheckBox("唱歌");         bg=new ButtonGroup();         r1=new JRadioButton("男");         r2=new JRadioButton("女");         bg.add(r1);         bg.add(r2);         b1=Box.createHorizontalBox();         b1.add(l1);         b1.add(Box.createHorizontalStrut(10));         b1.add(c1);         b1.add(Box.createHorizontalStrut(10));         b1.add(c2);         b1.add(Box.createHorizontalStrut(10));         b1.add(c3);         b2=Box.createHorizontalBox();         b2.add(l2);         b2.add(Box.createHorizontalStrut(40));         b2.add(r1);         b2.add(Box.createHorizontalStrut(40));         b2.add(r2);         p1.add(b1);         p1.add(b2);         c1.addActionListener(this);         c2.addActionListener(this);         c3.addActionListener(this);         r1.addActionListener(this);         r2.addActionListener(this);      validate();        	}		  public void actionPerformed(ActionEvent e) {			 			if(e.getSource()==c1)		  jt.append(c1.getText()+"\r\n");						if(e.getSource()==c2)				  jt.append(c2.getText()+"\r\n");			if(e.getSource()==c3)				  jt.append(c3.getText()+"\r\n");			if(e.getSource()==r1)				  jt.append(r1.getText()+"\r\n");			if(e.getSource()==r2)				  jt.append(r2.getText()+"\r\n");						}					public static void main(String[] args) {		// TODO Auto-generated method stub     new frame("123");	}}
结果如下

你可能感兴趣的文章
SVN更新失败 解决方法
查看>>
关于Java的File.separator
查看>>
linux定时任务的设置
查看>>
MySQL 5.7 完全傻瓜安装教程 图文
查看>>
Hibernate框架概述&SSH框架工作原理以及流程
查看>>
Aapche POI txt 导入excel
查看>>
C语言 ## __VA_ARGS__ 宏
查看>>
C++项目中的extern "C" {}
查看>>
(转)C++中extern “C”含义深层探索
查看>>
【日常小记】linux中强大且常用命令:find、grep
查看>>
Linux多线程编程(不限Linux)
查看>>
C/C++内存泄漏及检测
查看>>
C中的继承和多态
查看>>
linux修改ssh端口和禁止root远程登陆设置
查看>>
What really happens when you navigate to a URL
查看>>
偶遇with ties
查看>>
linux 编译指定库、头文件的路径问题
查看>>
使用gdb调试运行时的程序小技巧
查看>>
linux后端服务程序之信号处理
查看>>
Padding也要小心
查看>>