第十一周—图形用户界面
来源:互联网 发布:青龙山精神病医院知乎 编辑:程序博客网 时间:2024/06/05 08:00
作业:编写一个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文本域,每行显示一个选项。可以重复点击,每次点击都显示选中项。import java.awt.*;import javax.swing.*;import java.awt.event.*;public class PersonalInformation extends JFrame{ JPanel pl; JLabel lbl1, lbl2; JCheckBox cb1, cb2, cb3; ButtonGroup bg; JRadioButton rb1, rb2; JScrollPane sp; JTextArea ta; public PersonalInformation(){ super("PersonalInformation"); Listener1 l1 = new Listener1(); lbl1=new JLabel("兴趣"); cb1 = new JCheckBox("羽毛球"); cb1.addItemListener(l1); cb2 = new JCheckBox("乒乓球"); cb2.addItemListener(l1); cb3 = new JCheckBox("唱歌"); cb3.addItemListener(l1); Box boxH1 = Box.createHorizontalBox(); boxH1.add(Box.createHorizontalStrut(5)); boxH1.add(lbl1); boxH1.add(Box.createHorizontalStrut(50)); boxH1.add(cb1); boxH1.add(Box.createHorizontalStrut(5)); boxH1.add(cb2); boxH1.add(Box.createHorizontalStrut(5)); boxH1.add(cb3); Listener2 l2 = new Listener2(); lbl2=new JLabel("性别"); bg = new ButtonGroup(); rb1 = new JRadioButton("男"); rb1.addActionListener(l2); rb2 = new JRadioButton("女"); rb2.addActionListener(l2); bg.add(rb1); bg.add(rb2); Box boxH2 = Box.createHorizontalBox(); boxH2.add(Box.createHorizontalStrut(5)); boxH2.add(lbl2); boxH2.add(Box.createHorizontalStrut(50)); boxH2.add(rb1); boxH2.add(Box.createHorizontalStrut(5)); boxH2.add(rb2); pl = new JPanel(); pl.setLayout(new GridLayout(2,1)); pl.add(boxH1); pl.add(boxH2); ta = new JTextArea(200, 300); sp = new JScrollPane(ta); Container contentPane = getContentPane(); contentPane.add(pl, BorderLayout.NORTH); contentPane.add(sp, BorderLayout.CENTER); setSize(400,300); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String args[]){ new PersonalInformation(); } class Listener1 implements ItemListener{ public void itemStateChanged(ItemEvent e){ if(e.getSource()==cb1) ta.append(cb1.getText()+"\n"); else if(e.getSource()==cb2) ta.append(cb2.getText()+"\n"); else if(e.getSource()==cb3) ta.append(cb3.getText()+"\n"); } } class Listener2 implements ActionListener{ public void actionPerformed(ActionEvent e){ if(e.getSource()==rb1) ta.append(rb1.getText()+"\n"); else if(e.getSource()==rb2) ta.append(rb2.getText()+"\n"); } }}
阅读全文
0 0
- 第十一周—图形用户界面
- 图形用户界面—基本概念
- 图形用户界面—基本概念
- 传智播客培训第十八天:图形用户界面之事件监听机制
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- 图形用户界面
- JDBC 练习1 完成一个可以增删改查的用户数据库
- 11-19 秦皇岛重现赛水题总结之c,l,m
- vim/vi 如何高效使用(键盘图打印版)
- Java集合整体框架及Collection
- 2016.11.19
- 第十一周—图形用户界面
- pdffactory pro虚拟打印机官方版V6.20下载 | pdffactory pro破解版 | pdffactory pro 注册码
- NOIP2017总结
- c语言常见循环嵌套程序(初级)
- 汽车加油问题
- 第二课、二进制运算
- Mybatis之Mybatis入门程序(3)
- Gas Station,转化为求最大序列的解法,和更简单简单的Jump解法
- JS中的call()和apply()