




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务9设计用户注册界面,学习情境二(考试系统单机版),学习目标,掌握JComboBox、JCheckBoxl、JRadioButton组件的创建及ItemEvent事件处理。 掌握JList组件的创建及ListSelectionEvent事件的处理。 熟悉网格包布局管理器、盒式布局的使用及其多种布局方式的综合应用。,9.1 任务描述,9.2 技术要点,选择性组件 选择事件 复杂布局管理器,选择性组件组合框(JComboBox类),选择性组件列表框(JList类),选择性组件单选按钮(JRadioButton类),选择性组件复选框(JCheckbox类),选择事件ItemEvent类,举例 It
2、emeventDemo.java,1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 public class ItemeventDemo extends JFrame implements ItemListener,ActionListener 5 JRadioButton opt1; 6 JRadioButton opt2; 7 ButtonGroup btg; 8 JTextArea ta; 9 JComboBox comb; 10 JLabel sex,city; 11 public Ite
3、meventDemo(String title) 12 super(title); 13 setLayout(new FlowLayout(FlowLayout.LEFT); 14 sex=new JLabel(性 别: ); 15 city=new JLabel( 籍 贯:); 16 opt1=new JRadioButton( 男 ); 17 opt2=new JRadioButton( 女 ); 18 btg=new ButtonGroup(); 19 btg.add(opt1); 20 btg.add(opt2); 21 opt1.addItemListener(this); 22 o
4、pt2.addItemListener(this);,23 ta=new JTextArea (8,35); 24 comb=new JComboBox(); 25 comb.addItem(北 京); 26 comb.addItem(上 海); 27 comb.addItem(南 京); 28 comb.addItem(广 州); 29 comb.addItem(成 都); 30 comb.addItem(昆 明); 31 comb.addItemListener(this); 32 comb.addActionListener(this); 33 getContentPane().add(
5、sex); 34 getContentPane().add(opt1); 35 getContentPane().add(opt2); 36 getContentPane().add(city); 37 getContentPane().add(comb); 38 getContentPane().add(ta); 39 setTitle(title); 40 setSize(300,250); 41 setVisible(true); 42 ,举例 ItemeventDemo.java(续),举例 ItemeventDemo.java(续),43 public static void mai
6、n(String args) 44 new ItemeventDemo(Itemevent Demo); 45 46 / ItemEvent事件发生时的处理操作 47 public void itemStateChanged(ItemEvent e) 48 String str; 49 if(e.getSource()=opt1) / 如果是opt1被选择 50 ta.append(n性 别:+男); 51 else if(e.getSource()=opt2) / 如果opt2被选择 52 ta.append(n性 别:+女); 53 if(e.getSource()=comb) 54 st
7、r=comb.getSelectedItem().toString(); 55 ta.append(n籍 贯:+str+ =ItemEvent事件 ); 56 57 58 public void actionPerformed(ActionEvent e) 59 String str; 60 if(e.getSource()=comb) 61 str=comb.getSelectedItem().toString(); 62 ta.append(n籍 贯:+str+ =ActionEvent事件 ); 63 64 65 ,运行效果,举例CheckBoxDemo .java,1 import j
8、ava.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 public class CheckBoxDemo extends JFrame implements ItemListener 5 private JTextField field; 6 private JCheckBox bold, italic; 7 private int valBold = Font.PLAIN; 8 private int valItalic = Font.PLAIN; 9 public CheckBoxDemo() 10 super( J
9、CheckBox Demo ); 11 Container container = getContentPane(); 12 container.setLayout( new FlowLayout() ); 13 field = new JTextField( 2008,北京欢迎您!, 20 ); 14 field.setFont( new Font( 隶书, Font.PLAIN, 14 ) ); 15 container.add(field ); 16 bold = new JCheckBox( Bold );,17 container.add( bold ); 18 italic = n
10、ew JCheckBox( Italic ); 19 container.add( italic ); 20 bold.addItemListener(this); 21 italic.addItemListener( this ); 22 setSize( 280, 100 ); 23 setVisible( true ); 24 25 public void itemStateChanged(ItemEvent event) 26 if ( event.getSource() = bold ) 27 valBold = bold.isSelected() ? Font.BOLD : Fon
11、t.PLAIN; 28 if ( event.getSource() = italic ) 29 valItalic = italic.isSelected() ? Font.ITALIC : Font.PLAIN; 30 field.setFont( new Font( 隶书, valBold + valItalic, 14 ) ); 31 32 public static void main(String args) 33 new CheckBoxDemo(); 34 35 ,选择事件 ListSelectionEvent类,首先必须声明实现监听者对象的类接口ListSelectionLi
12、stener,并通过JList类的addListSelectionListener( )方法注册文本框的监听者对象, 在ListSelectionListener接口的valueChanged (ListSelectionEvent e)方法体中写入有关代码,就可以响应ListSelectionEvent事件。,例9-3 JListDemo.java,1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 import javax.swing.event.*; 5 public class JListD
13、emo extends JFrame implements ListSelectionListener 6 JList list = null; 7 JLabel label = null; 8 String s = 宝马,奔驰,奥迪,本田,皇冠,福特,现代; 9 public JListDemo() 10 JFrame f = new JFrame(JList Demo); 11 Container contentPane = f.getContentPane(); 12 contentPane.setLayout(new BorderLayout(0,15); 13 label = new
14、 JLabel( ); 14 list = new JList(s); 15 list.setVisibleRowCount(5); 16 list.setBorder(BorderFactory.createTitledBorder(汽车品牌:);,17 list.addListSelectionListener(this); 18 contentPane.add(label,BorderLayout.NORTH); 19 contentPane.add(new JScrollPane(list),BorderLayout.CENTER); 20 f.setSize(300,200); 21
15、 f.setVisible(true); 22 23 public static void main(String args) 24 new JListDemo(); 25 26 public void valueChanged(ListSelectionEvent e) 27 int tmp = 0; 28 String stmp = 您喜欢的汽车品牌有: ; 29 int index = list.getSelectedIndices(); 30 for(int i=0; i index.length ; i+) 31 tmp = indexi; 32 stmp = stmp+stmp+
16、; 33 34 label.setText(stmp); 35 36 ,运行效果,复杂布局管理器 网格包布局(GridBagLayout类),举例 GridBagLayoutDemo.java,1 import java.awt.*; 2 import javax.swing.*; 3 public class GridBagLayoutDemo extends JFrame 4 protected void addbutton(String name,GridBagLayout gridbag, 5 GridBagConstraints c) 6 JButton button = new J
17、Button(name); 7 gridbag.setConstraints(button, c); 8 getContentPane().add(button); 9 10 public GridBagLayoutDemo() 11 GridBagLayout gridbag = new GridBagLayout(); 12 GridBagConstraints c = new GridBagConstraints(); 13 setFont(new Font(SansSerif, Font.PLAIN, 14); 14 setLayout(gridbag); 15 c.fill = Gr
18、idBagConstraints.BOTH; 16 c.weightx = 1.0; 17 addbutton(Button1, gridbag, c); 18 addbutton(Button2, gridbag, c); 19 addbutton(Button3, gridbag, c); 20 c.gridwidth = GridBagConstraints.REMAINDER; /最后一个组件 21 addbutton(Button4, gridbag, c); 22 c.weightx = 0.0; /恢复默认值 44 ,23 addbutton(Button5, gridbag,
19、c); 24 c.gridwidth = GridBagConstraints.RELATIVE; /倒数第二个组件 25 addbutton(Button6, gridbag, c); 26 c.gridwidth = GridBagConstraints.REMAINDER; /最后一个组件 27 addbutton(Button7, gridbag, c); 28 c.gridwidth = 1; /恢复默认值 29 c.gridheight = 2; /占据两行 30 c.weighty = 1.0; 31 addbutton(Button8, gridbag, c); 32 c.we
20、ighty = 0.0; /恢复默认值 33 c.gridwidth = GridBagConstraints.REMAINDER; /最后一个组件 34 c.gridheight = 1; /恢复默认值 35 addbutton(Button9, gridbag, c); 36 addbutton(Button10, gridbag, c); 37 38 public static void main(String args) 39 GridBagLayoutDemo window = new GridBagLayoutDemo(); 40 window.setTitle(GridBagLa
21、yout Demo); 41 window.pack(); 42 window.setVisible(true); 43 ,复杂布局管理器 盒式布局(BoxLayout类),3种隐藏的组件做间隔: Strut(支柱):用来在组件之间插入固定的空间。 Glue(胶水):用来控制一个框布局内额外的空间。 Ridid area(硬区域):用来生成一个固定大小的区域。,举例 BoxLayOutDemo.java,1 import java.awt.*; 2 import javax.swing.*; 3 public class BoxLayOutDemo 4 public static void m
22、ain(String args) 5 MyFrame f=new MyFrame(); 6 f.setVisible(true); 7 8 9 class MyFrame extends JFrame 10 public MyFrame() 11 super(BoxLayout DEMO ); 12 final int NUM=2; 13 setBounds(500,350,300,200); 14 Container c =getContentPane(); 15 c.setLayout(new BorderLayout(20,20); /设置边框布局 16 Box boxes = new Box4; /设置盒式布
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保安服务质量监控与保障手册
- 绩效考核指标全面指南
- 职业教育国际化进程
- 固体废物处理与处置教学方案
- 创新驱动下的企业数字化转型路径
- 区域中心小学餐饮配送服务体系建设规划方案探讨
- 合肥特殊疾病管理办法
- 学校三年发展规划实施成果评估与反思总结报告
- 江苏红酒仓储管理办法
- 回迁工作经费管理办法
- 2025年计算机程序设计考试试卷及答案
- 2025年河南省中考数学真题含答案
- 人力中介公司管理制度
- 抗精神病药氯丙嗪讲课件
- 2025人教英语初中八年级下册期末测试卷(含答案)
- 燃气入户回访管理制度
- 燃气公司计量管理制度
- 综合与实践 白昼时长规律的探究 同步练习(含答案)人教版七年级数学下册
- 2025年山西烟草专卖局考试题库带答案分析试卷及答案
- 2025-2030中国餐厨垃圾处理服务行业市场现状分析及竞争格局与投资发展研究报告
- 2025年反假币知识竞赛题库及答案(共50题)
评论
0/150
提交评论