任务9设计用户注册界面解读

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第9章任务9——设计用户注册界面第9章任务9——设计用户注册界面9.1任务描述9.2技术要点9.3任务实施第9章任务9——设计用户注册界面9.1任务描述本章的任务是设计用户注册界面,并完成相关功能。在用户登录的界面中,通过单击【注册】按钮,进入用户注册界面,如图9-1所示。注册界面中除了标签、按钮、文本框、密码框等熟悉的组件,还新增了作为性别选择的单选按钮以及提供所属班级选择的组合框等组件。当用户填写好正确信息后,单击【注册】按钮,系统将把当前用户信息保存至用户信息文件。由于文件读写相关操作将在后续章节进行讲解,因此在本章为了保证程序的完整性,我们暂时显示一个简单的窗口以提示注册成功,如图9-1所示。第9章任务9——设计用户注册界面图9-1用户注册界面第9章任务9——设计用户注册界面9.2技术要点本章技术要点是GUI程序设计中的选择性组件及其相关事件、常用复杂的布局方式——网格包布局(GridBagLayout)和盒式布局(BoxLayout)。第9章任务9——设计用户注册界面9.2.1选择性组件1.组合框(JComboBox类)组合框是一些项目的简单列表,用户可以看到它的一个选项及其旁边的箭头按钮。当用户单击箭头按钮时,选项列表被展开,用户可以从中进行选择。其优点在于节省空间,使界面更加紧凑。同时,它也限制用户的选择范围,并且能够避免对输入数据有效性的繁琐验证。默认情况下,JComboBox是不可编辑的,但可以调用setEditable(true)将其设置为可编辑状态。JComboBox类的常用构造函数及方法如表9-1所示。第9章任务9——设计用户注册界面表9-1JComboBox类的常用构造函数及方法常用构造函数及方法用途JComboBox()创建一个空的组合框JComboBox(Object[]items)创建包含指定数组中的元素的组合框JComboBox(Vectoritems)创建包含指定Vector内所有元素的组合框voidaddItem(ObjectanObject)为项列表添加项ObjectgetSelectedItem()返回当前所选项voidsetSelectedIndex(intindex)选择第index个元素(第一个元素index值为0)voidsetEditable(booleanaFlag)确定JComboBox字段是否可编辑第9章任务9——设计用户注册界面例如:创建一个显示城市名字的组合框。Stringcity[]={“北京”,“上海”,“广州”“};JComboBoxjcity=newJComboBox(city);JComboBox可以触发ActionEvent和ItemEvent事件。选中一个新的选项时,JComboBox会触发两次ItemEvent事件,一次是取消前一个选项,另一次是选择当前选项。产生ItemEvent事件后,JComboBox紧接着触发ActionEvent事件,具体示例参见本章例9-1。第9章任务9——设计用户注册界面2.列表框(JList类)列表框的作用与组合框基本相同,也是提供一系列的选择项供用户选择,但是列表框允许用户同时选择多项。可以在创建列表时,将其各选择项加入到列表中。JList类的常用构造函数及方法如表9-2所示。第9章任务9——设计用户注册界面表9-2JList类的常用构造函数及方法常用构造函数及方法用途JList()创建一个空的列表框JList(Object[]items)创建包含指定数组中的元素的列表框add(Stringitem)将标签为item的选项加入列表中voidaddItem(ObjectanObject)为项列表添加项add(Stringitem,intindex)将标签为item的选项加入列表中指定序号处getSelectedItem()获得已选中的选择项文本getSelectedItems()获得所有已选择的选项组成的字符数组getSelectedIndex()获得已选中的选择项的序号getSelectedIndexs()获得所有已选择的选项组成的整型数组select(intindex)选中指定序号的选项deselect(intindex)不选指定序号的选项remove(Stringitem)将指定标签的选项删除remove(intindex)将指定序号的选项删除第9章任务9——设计用户注册界面例如:创建一个关于颜色的列表框。JListcolorlist=newJList(3,true);//列表的构造函数colorlist.add(red);//将字符串加到列表中colorlist(green);colorlist(blue);JList(3,true)中的3表明该列表只显示三个选项;true表示可做多重选择,若为false,则只能做单一的选择。第9章任务9——设计用户注册界面3.单选按钮(JRadioButton类)单选按钮JRadioButton是提供用户从一组选项中选择唯一的选项的按钮。JRadioButton类的常用构造函数及方法如表9-3所示。第9章任务9——设计用户注册界面表9-3JRadioButton类的常用构造函数及方法常用构造函数及方法用途JRadioButton()创建一个未选的空单选按钮JRadioButton(String)创建一个标有文字的未选的单选按钮JRadioButton(String,boolean)创建一个标有文字的单选按钮,并指定状态为选中第9章任务9——设计用户注册界面单选按钮可以像按钮一样添加到容器中,但要实现多选一的功能,必须将单选按钮分组,需要创建一个ButtonGroup的实例,并用add方法把单选按钮添加到该实例中。具体方法如下所示,显示效果如图9-2所示。JRadioButtonrad1,rad2;rad1=newJRadioButton(男);rad2=newJRadioButton(女,true);ButtonGroupbtg=newButtonGroup();btg.add(rad1);btg.add(rad1);第9章任务9——设计用户注册界面panel=newJPanel();panel.add(rad1);panel.add(rad2);第9章任务9——设计用户注册界面图9-2单选按钮第9章任务9——设计用户注册界面4.复选框(JCheckBox类)JCheckBox组件提供一种简单的“开/关”输入设备,它带有一个文本标签。每个复选按钮只有两种状态:true表示选中;false表示未被选中。创建复选按钮对象时可以同时指明其文本标签,这个文本标签简要地说明了复选按钮的含义。其功能与单选按钮(JRadioButton)类似,所不同的是复选框可以实现多选多。JCheckBox类的常用构造函数及方法如表9-4所示。第9章任务9——设计用户注册界面表9-4JCheckbox类的常用构造函数及方法常用构造函数及方法用途JCheckBox()创建一个未选的空复选框JCheckBox(String)创建一个标有文字的未选复选框JCheckBox(Icon)创建有一个图标的未选复选框JCheckBox(String,Icon)创建带有指定文本和图标的未选复选框booleanisSelected()若复选框处于选中状态,该方法返回true,否则返回falseStringgetText(String)获取复选框的名称第9章任务9——设计用户注册界面复选按钮的构造函数如下:JCheckBox()JCheckBox(Stringstr,booleantf)其中,str指明对应的文本标签;tf是一个逻辑值,或为true,或为false。如果要获得复选按钮的状态,可以调用方法getState()获得:若按钮被选中,返回true,否则返回false。调用方法setState()可以在程序中设置是否选中复选按钮。例如:创建一个关于字型的复选框,显示效果如图9-3所示。第9章任务9——设计用户注册界面JCheckBoxbold=newJCheckBox(Bold);//粗体JCheckBoxitalic=newJCheckBox(Italic);//斜体第9章任务9——设计用户注册界面图9-3复选框第9章任务9——设计用户注册界面9.2.2选择事件1.ItemEvent类选择事件是在具有选择某个项目功能的组件上发生的事件,能够引发选择事件的Swing组件,包括复选框、复选框菜单项、组合框、单选按钮。ItemEvent类的常用方法如表9-5所示。第9章任务9——设计用户注册界面表9-5ItemEvent类的常用方法常用方法用途ObjectgetItem()获得触发事件的组件intgetStateChange()返回Item组件改变的状态(DESELECTED或SELECTED)ItemSelectablegetItemSelectable()返回触发选中状态变化事件的事件源(对象引用)第9章任务9——设计用户注册界面ItemEvent类用两个静态常量表示选项状态:■ItemEvent.SELECTED:代表选项被选中。■ItemEvent.DESELECTED:代表选项未被选中。处理ItemEvent事件时需要实现ItemListener接口,该接口中只包含一个抽象方法,当选项的选择状态发生改变时被调用。publicvoiditemStateChanged(ItemEvente)例9-1中,当鼠标选中组合框中新的选项时,JComboBox将触发两次ItemEvent事件,随后触发ActionEvent事件。第9章任务9——设计用户注册界面例9-1ItemeventDemo.java1importjava.awt.*;2importjava.awt.event.*;3importjavax.swing.*;4publicclassItemeventDemoextendsJFrameimplementsItemListener,ActionListener{5JRadioButtonopt1;6JRadioButtonopt2;7ButtonGroupbtg;8JTextAreata;9JComboBoxcomb;第9章任务9——设计用户注册界面10JLabelsex,city;11publicItemeventDemo(Stringtitle){12super(title);13setLayout(newFlowLayout(FlowLayout.LEFT));14sex=newJLabel(性别:);15city=newJLabel(籍贯:);16opt1=newJRadioButton(男);17opt2=newJRadioButton(女);18btg=newButtonGroup();19btg.add(opt1);20btg.add(opt2);第9章任务9——设计用户注册界面21opt1.addItemListener(this);22opt2.addItemListener(this);23ta=newJTextArea(8,35);24comb=newJComboBox();25comb.addItem(北京);26comb.addItem(上海);27comb.addItem(南京);28comb.addItem(广州);29comb.addItem(成都);30comb.addItem(昆明);31comb.addItemListener(this);第9章任务9——设计用户注册界面32comb.addActionListener(this);33getContentPane().add(sex);34getContentPane().add(opt1);35getContentPane().add(opt2);36getContentPane().add(city);37getContentPane().add(comb);38getContentPane().ad

1 / 93
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功