Java程序设计项目式教程 课件 单元10 Java图形用户界面设计_第1页
Java程序设计项目式教程 课件 单元10 Java图形用户界面设计_第2页
Java程序设计项目式教程 课件 单元10 Java图形用户界面设计_第3页
Java程序设计项目式教程 课件 单元10 Java图形用户界面设计_第4页
Java程序设计项目式教程 课件 单元10 Java图形用户界面设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

§10-1学生信息管理系统登录界面设计Java语言程序设计教学目标任务分析学生信息管理系统主要提供给教师和学生两种角色的用户使用,用户使用前需要首先进行登录,本任务实现用户登录界面的设计,如图所示。目录1Java布局管理图形用户界面组成21Swing常用组件设置一、图形用户界面组成图形用户界面,简称GUI(GraphicsUserInterface)。使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令,启动操作,并将系统运行的结果同样以图形方式显示给用户。图形用户界面画面生动操作简单,省去了字符界面用户必须记忆各种命令的麻烦。Java图形用户界面的各种元素称为组件(Component),组件是以图形化的方式显示在屏幕上,并能与用户进行交互的对象,如一个按钮、一个文本框等。Java图形用户界面主要有三类组件构成:容器组件、控制组件和用户自定义组件。一、图形用户界面组成容器(Conatiner)是用来组织其他界面成分和元素的单元。容器是Component的子类,因此容器本身也是一个组件。一个Java容器可以容纳多个组件,并使它们成为一个整体。容器分为顶层和非顶层容器两大类,一个应用程序中至少有一个顶层容器,其中可以包含若干个其它容器,javax.swing包中主要使用JFrame和JPanel两个容器。1.容器组件一、图形用户界面组成JFrame,通常称其为框架,扩展自java.awt.Frame类,用于在Swing程序中创建窗口,包含边框、标题和用于关闭和图标化窗口的按钮。方法说明JFrame()创建一个无标题的初始不可见的框JFrame(Stringtitle)创建一个标题为title的初始不可见的框voidsetSize(intwidth,intheight)将窗口大小调整为指定的宽度和高度voidsetTitle(Stringname)设置框架的标题voidsetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)单击框架的关闭按钮时,退出程序voidpack()紧凑排列窗口,使其尽量小,小到刚刚能够容其中的组件voidsetVisible(boolean)设置窗体是否可见示例代码importjavax.swing.JFrame;publicclassJFrameDemo1{ publicstaticvoidmain(Stringargs[]){

//使用无参构造

JFrameframe=newJFrame();//也可使用带参构造创建窗体

frame.setTitle("你好!");//设置标题 frame.setSize(600,600); frame.setVisible(true); }}importjavax.swing.JFrame;publicclassJFrameDemo2extendsJFrame{//定义一个类继承自JFrame publicJFrameDemo2(Stringtitle){ super(title); } publicstaticvoidmain(Stringargs[]){

//创建JFrameDemo2对象,同时设置窗体标题为“自定义窗体类!”

JFrameDemo2frame=newJFrameDemo2("自定义窗体类"); frame.setSize(600,600); frame.setVisible(true); }}一、图形用户界面组成JPanel是中间容器,用于将Swing组件组合在一起。该类是继承自JComponent,其添加组件的方法为add(JComponent)方法说明JPanel()创建一个JPanel对象JPanel(LayoutManagerlayout)创建JPanel对象时指定布局layoutComponentadd(Componentcomponent)向JPanel中添加组件voidsetBounds(intx,inty,intwidth,intheight)设置JPanel的位置及宽高voidsetSize(intwidth,intheight)将JPanel大小调整为指定的宽度和高度voidsetPreferredSize(Dimensiondimension)设置首选JPanel大小voidsetLayout(LayoutManagerlayout)设置布局layout一、图形用户界面组成2.控制组件控制组件是组成图形用户界面的最小单位之一,它里面不再包含任何其它的成分。控制组件的作用是完成与用户的一次交互,如接受用户命令、接受用户的文本输入、显示文本或图形等。常见控制组件如:按钮、文本框、单选按钮、复选框等3.自定义组件用户自定义的图形界面成分,如绘制一些几何图形、加入标志图案等。这些图形界面成分通常只起到装饰和美化作用,不能响应用户的动作、不具备交互功能。一、图形用户界面组成Java中涉及图形API的包有两个java.awt和javax.swing,AWT类定义在java.awt包中,swing组件定义在javax.swing包中,大多数Swing组件的名字前都有前缀J,如JComponent,JLable,JCheckedBox等。1)Component:是所有用户界面类的父类。2)Container:是所有容器类的父类。3)JComponent:是所有Swing组件的父类,它的子类包括:JButton、JTextField、JCheckedBox、JMenu、JRadioButton、JLable、JList、JTableJTextArea、JPanel、JScrollPane等,是构成GUI的基本元素。二、Java布局管理在GUI程序设计中,组件在界面中的布局(组件的大小和位置)也是至关重要的一个环节。Java用布局管理器(LayoutManager)来自动设定容器的中组件的大小和位置,当容器改变大小时,布局管理器自动改变其中的大小和位置,每种容器都有自己的默认布局管理器。如果不希望使用默认的布局管理器,则可以使用Container的setLayout()方法来设置容器的布局管理器。布局管理器属于AWT组件,常用布局管理器类主要有五个:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout。1.布局管理器简介二、Java布局管理

①FlowLayout:流布局管理器,是一种最基础的布局。FlowLayout是Panel的缺省布局管理器。其组件的放置规律是从上到下、从左到右依次进行放置。FlowLayout常用构造方法。1)FlowLayout():创建每行组件居中对齐,组件间距为5个像素单位的布局管理器对象。2)FlowLayout(intalign):创建指定对齐方式布局管理器对象。Align的取值:CENTER、LEFT、RIGHT。如:FlowLayout(FlowLayout.LEFT);3)FlowLayout(intalign,inthgap,intvgap):创建指定每行组件对齐方式,指定组件间距的布局管器对象。align:对齐方式,hgap:横向间隔,vgap:纵向间隔。如:FlowLayout(FlowLayout.RIGHT,20,40);2.常用布局管理器示例代码

FlowLayout非常适合于容器中只有少量组件时的情况,当容器中存在较多组件时,组件的布局将显得的无序而凌乱。二、Java布局管理②BorderLayout:边框布局管理器BorderLayout是Frame类的默认布局管理器BorderLayout将整个容器的布局划分成东、西、南、北、中五个区域,组件只能被添加到指定的区域,如不指定组件的加入部位,则默认加入到Center区域每个区域只能加入一个组件,如加入多个,则先前加入的组件会被遗弃BorderLayout型布局容器尺寸缩放原则南、北两个区域只能在水平方向缩放(宽度可调整)东、西两个区域只能在垂直方向缩放(高度可调整)中部可在两个方向上缩放NorthSouthWestEestCenter示例代码二、Java布局管理③GridLayout:网格布局管理器。将容器分成尺寸相同的网格,网络中的组件具有相同的大小。组件被添加到每个单元格中,先从左到右添满一行后换行,再从上到下。常用构造方法:1)GridLayout():以每行一列的方式构建一个GridLayout对象。2)GridLayout(introw,intcolumns):根据指定行数和列数构造一个GridLayout对象,组件间距为0。3)GridLayout(introw,intcolumns,inthgap,intvgap):根据指定行数和列数构造一个GridLayout对象,组件间距按指定值设置。示例代码10个组件,GridLayout创建3个固定的列和4个行,最后一行只包含1个组件。二、Java布局管理④CardLayout:卡片布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,就好象一叠卡片摞在一起。注意:在一张卡片中只能显示一个组件,因此可以使用容器嵌套方法显示多个组件。常用方法如下:first(Containercontainer):显示容器中的第一张卡片。last(Containercontainer):显示容器中的最后一张卡片。next(Containercontainer):显示容器中的下一张卡片。show(Containercontainer,Stringname):显示容器中指定名称的卡片。示例代码二、Java布局管理⑤GridBagLayout:网格块布局管理器一种灵活而复杂的布局管理器,它与GridLayout布局管理器相似,都是按网格安放组件,所不同的是GridBagLayout的组件可以大小不同,可以按任意次序添加。三、Swing常用组件设置

Swing提供了丰富的组件类,以满足各种GUI设计的需求。这些组件类均继承自JComonent。JComponect中的方法可对组件的属性进行通用设置。1.组件通用设置①按钮(JButton)按钮是一种点击时触发行为的组件,是GUI中非常重要的一种基本组件。可以创建空按钮,也可以创建带文本、图标的按钮。JButtonbutton1=newJButton();JButtonbutton2=newJButton(“按钮2”);Iconicon=newImagelcon(“photo.gif”);JButtonbutton3=newJButton(Iconicon);Iconicon=newImagelcon(“photo.gif”);JButtonbutton4=newJButton(”按钮4“,Iconicon);三、Swing常用组件设置2.常用组件②标签(JLabel)标签是用户只能查看不能修改其内容的组件,常用来在界面输出信息。如:JLabeljLabel=newJLabel(“这是Swing标签");③单行文本框JTextField文本输入框,常用来在界面接收用户的输入信息JTextFieldunameField=newJTextField() //创建一个用户名文本输入框JTextFieldunameField=newJTextField(20)//创建一个指定列数的用户名文本输入框//获取文本框中显示的字符串unameField.getText();三、Swing常用组件设置④口令文本框:JPasswordField单行口令文本框JPasswordField允许编辑一个单行文本,但不显示原始字符,是一个专门用于输入用户口令的文本组件。//创建一个指定列数口令文本框JPasswordFieldupwdField=newJPasswordField(14);

//获取口令文本框中字符串unameField.getPassword();三、Swing常用组件设置⑤单选按钮(JRadioButton)单选按钮为用户提供多个选项,让用户从中选择一项,即实现“多选一”。为了实现从一组单选按钮选择一个,必须要把多个单选按钮放入一个按钮组(ButtonGroup)//创建ButtonGroup,JRadioButtonButtonGroupbuttonGroup=newButtonGroup();//声明按钮组JRadioButtonadminRadioButton=newJRadioButton("管理员");JRadioButtonstuRadioButton=newJRadioButton("学生");buttonGroup.add(adminRadioButton);buttonGroup.add(stuRadioButton);三、Swing常用组件设置任务实施学生信息管理系统登录界面实现步骤如下。1)首先创建一个类LoginJFrame,使得该类继承自JFrame,同时定义一个带String类型参数的构造方法。2)在构造方法中创建JLabel标签文本框组件,使用带参构造设置文本。3)在构造方法中创建JTextField文本框,JPasswordField组件,使用带参构造设置列数。4)在构造方法中创建ButtonGroup,JRadioButton组件,使用带参构造设置单选按钮文本及是否选中,并将单选按钮添加至按钮组。任务实施学生信息管理系统登录界面实现步骤如下。5)在构造方法中创建JButton登录按钮,使用带参构造设置文本。6)依次创建4个JPanel面板,将第2-5步中所创建组件按需添加至JPanel面板中。7)将4个JPanel面板添加至主窗体。8)在构造方法中设置JFrame相关特性,如窗体大小,窗体布局,可见性,退出关闭等。设计用户注册窗体,窗体标题设置为用户注册,在该窗体中使用布局,合理摆放并显示用户名,密码,确认密码,角色,注册按钮等组件。按“工单10-1”要求完成任务同步训练§10-2

登录功能实现Java语言程序设计教学目标任务分析本任务将实现点击“登录”按钮后,获取用户录入的用户名、密码及角色,对用户名、密码及角色进行相关验证,给出用户登录成功与否的提示,而点击“重置”按钮实现用户名,密码清除重置。目录1创建和使用菜单Java事件处理21对话框表格JTable2一、Java事件处理事件源:

可能产生事件的组件事件对象(Event):封装了GUI组件上发生的特定事件(通常就是用户的一次操作)事件监听器(Listener):负责监听事件源上发生的事件,并对各种事件做出相应处理。若希望事件源上引发的事件被程序处理,需要给事件源注册能够处理该事件的监听器,事件源本身不处理事件,而是委托相应的事件监听器来处理,这种事件处理模式被称为委托模式。1.事件处理机制ActionListener:actionPerformed(ActionEvente)2.常用事件处理一、Java事件处理示例代码1.菜单组件简介菜单是GUI中的重要组件,它是各种命令的集合。每个菜单组件由JMenuBar(菜单栏)、JMenu(菜单/子菜单项)和JMenuItem(菜单项)组成。二、创建和使用菜单2.创建菜单组件

①创建一个菜单栏,并建立它与框架的关联②创建菜单:使用JMenu(Stringlabel)带参构造方法创建菜单,添加到菜单栏中。二、创建和使用菜单

③创建菜单项并将它们添加到菜单

④创建子菜单:可以将一个菜单嵌入到另一个菜单中,嵌入的菜单就称为子菜单。二、创建和使用菜单⑤为菜单项添加图标及快捷键菜单组件具有图标icon和热键mnemonic属性。给“新建”和“打开”添加图标、设置热键。JMenuItemjmiNew,jmiOpen;fileMenu.add(jmiNew=newJMenuItem(“新建(N)”));fileMenu.add(jmiOpen=newJMenuItem(“打开(O)”));jmiNew.setIcon(newImageIcon(“new.gif”));jmiOpen.setIcon(newImageIcon(“open.gif”));jmiNew.setMnemonic(‘N’);jmiOpen.setMnemonic(‘O’);//以下语句可以给“打开”菜单项添加快捷键(CTRL--O)jmiOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));二、创建和使用菜单⑥菜单项事件点击菜单项,会产生ActionEvent事件。可以为菜单项注册ActionListener监听器,对事件进行监听。二、创建和使用菜单表格JTable是用来显示二维数据,同时可提供编辑、选择等功能,它不能作为一个应用程序的主框架,而必须包含在容器中。如果表格显示中数据较少可将表格放入JPanel中(默认不显示列名,需做额外操作),但如果数据较多则可放入JScrollPanel中。三、表格JTable1.表格JTable简介创建表格首先了解其构造方法,表中为JTable构造方法及其他常用方法。三、表格JTable2.创建表格JTable方法说明JTable()创建一个新表格,并使用系统默认的ModelJTable(intnumRows,intnumColumns)创建一个有numRows行,numColumns列的的空表格JTable(Object[][]rowData,Object[]columnNames)创建一个表格数据为rowdata,列名columnNames为表格对象JTable(VectorrowData,VectorcolumnNames)创建一个表格数据为rowDate,列名columnNames为表格对象JTable(TableModeldm)使用TableModel创建一个表格对象JTable(TableModeldm,TableColumnModelcm,ListSelectionModelsm)使用TableModel,TableColumnModel,ListSelectionModel创建一个表格对象voidsetSelectionMode(intselectionMode)设置选择模式,值为:ListSelectionModel.SINGLE_SELECTION、ListSelectionModel.SINGLE_INTERVAL_SELECTION、ListSelectionModel.MULTIPLE_INTERVAL_SELECTIONvoidsetRowHeight(introwHeight)设置表格行高voidsetDefaultRenderer(Class<?>columnClass,Ta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论