项目5 图形界面设计_第1页
项目5 图形界面设计_第2页
项目5 图形界面设计_第3页
项目5 图形界面设计_第4页
项目5 图形界面设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

图形用户界面设计项目五高等院校公共课系列精品教材Java开发综合实战遵循人的认知心理和行为方式,树立科学、正确的审美观。跨越学科界限实现多学科交叉,培养复合型人才。思政目标能够使用常用容器和组件创建图形用户界面能够利用布局管理器对界面组件进行合理布局技能目标通过图形用户界面(GraphicUserInterface,GUI),用户可以和程序进行交互。Java在javax.swing包中提供了强大的用于开发桌面程序的API,方便用户设计图形用户界面,并进行GUI事件处理。JavaSwing是Java的一个庞大分支,主要用来开发GUI程序,本项目简要介绍使用其中具有代表性的几个Swing组件制作图形用户界面的方法。项目导读任务1初识JavaSwing任务2创建常用容器与布局任务3使用常用组件知识梳理初识JavaSwing任务1任务1初识JavaSwing任务引入通过前面几个项目的学习,小白创建了一个控制台版本的进销存管理系统。由于操作不直观,小白想为进销存管理系统创建图形用户界面。在Java中,使用哪些工具包可以创建图形用户界面呢?知识准备一、Swing概述Java早期进行用户界面设计时,主要使用Java抽象窗口工具包(AbstractWindowToolkit,简称AWT)java.awt提供的用于设计GUI的组件类。javax.swing包(简称Swing)是随JDK1.2推出的一个新的包,提供了功能更为强大的设计GUI的类。java.awt和javax.swing包中部分类的层次关系的UVML类图如图所示。任务1初识JavaSwing提示:Swing组件在AWT组件名称的基础上增加了一个字母“J”作为前缀。部分类的层次关系二、容器容器是GUI设计中必不可少的一种界面元素,是用来放置其他组件的一种特殊部件。在Java中,Container的子类或间接子类创建的对象称为容器。提示:容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套。Java类库中提供了丰富的容器类,为选择与创建容器带来了极大的便捷。下面简要介绍两种常用容器:底层容器和面板容器。1.底层容器底层容器是指最外层的容器,即包含所有组件或容器的那层容器。2.面板容器面板是一种没有边框、没有标题栏的中间层容器。常见的面板容器有两种:一种是普通的面板容器;另一种是带滚动视图的容器。任务1初识JavaSwing三、组件在Java中,Component类的子类或间接子类创建的对象称为组件。常用的Swing组件如表所示。任务1初识JavaSwing创建常用容器与布局任务2任务引入了解了创建图形用户界面的基本工具和概念,小白着手学习创建最基本的窗体、对话框和容纳各种组件的面板。一个图形用户界面通常会包含多种组件,怎样排列布局这些组件呢?知识准备基于GUI的应用程序应当提供一个能与操作系统直接交互的底层容器,该容器可以被直接显示在操作系统所控制的平台上,例如显示器上。其他组件要与操作系统进行信息交互,就必须被添加到底层容器中,否则用户无法看见组件,更无法通过组件进行交互。任务2创建常用容器与布局一、JFrame窗体JFrame类是Component的子类,也是Container类的间接子类。JFrame类的实例是一个底层容器,通常也称为窗体。在开发应用程序时,可以通过继承JFrame类或直接使用JFrame类的实例创建一个窗体。在Java应用程序中创建JFrame窗体的一般操作过程为:创建窗体→定位窗体→指定窗体关闭方式→指定窗体可见性。1.创建窗体窗体可以使用JFrame或其子类创建任务2创建常用容器与布局注意:窗体默认被系统添加到显示器屏幕上,因此不允许将一个窗体添加到另一个容器中。2.定位窗体定位窗体包括设置窗体大小和显示位置。3.指定窗体扩展和关闭方式JFrame窗体具有“最大化”“最小化”和“关闭”等按钮。4.指定窗体可见性JFrame窗体在创建后默认是不可见的,因此,必须在程序中调用setVisible()方法显示窗体,其参数值为true或false。任务2创建常用容器与布局案例——创建窗体示例本案例通过继承JFrame类,演示创建JFrame窗体的操作方法。(1)在Eclipse中新建一个名为SwingDemo的项目,然后在项目中添加一个名为JFWindow的类。(2)在编辑器中引入包,编写代码定义继承类,然后编写主方法创建窗体。(3)运行程序,即可在屏幕指定位置弹出指定大小的对话框,如图所示。任务2创建常用容器与布局创建的JFrame窗体二、JDialog对话框JDialog继承了AWT组件中的java.awt.Dialog类,用于创建Swing对话框。在应用程序中创建JDialog窗体需要实例化JDialog类,通常使用以下几个JDialog类的构造方法。publicJDialog():创建一个没有标题和父窗体的对话框。publicJDialog(Framef):创建一个指定父窗体的对话框,没有标题。publicJDialog(Framef,booleanmodel):创建一个指定类型的对话框,并指定父窗体f,没有标题。publicJDialog(Framef,Stringtitle):创建一个指定标题和父窗体的对话框。publicJDialog(Framef,Stringtitle,booleanmodel):创建一个指定标题、父窗体和模式的对话框。任务2创建常用容器与布局三、JPanel面板JPanel也是一种常用的容器种类。在Java应用程序中,使用JPanel面板容器的基本步骤如下:(1)定义一个JPanel类的子类,并实例化一个对象。JPanel类提供了如下两种格式的构造方法:JPanel():创建一个布局管理器为FlowLayout的面板容器。JPanel(LayoutManagerlayout):这个构造方法将创造一个布局管理器为layout的面板容器。(2)使用getContentPane().add()方法将面板放置到窗体中。任务2创建常用容器与布局四、JScrollPane面板如果某个界面中的组件较多,或某个组件的内容较多,由于屏幕大小的限制,有时不能在同一屏中显示界面中的全部组件,此时,可以使用带滚动功能的视图容器。JScrollPane类实现了一个带有滚动条的面板,用于为不自带滚动条的组件添加滚动条。例如,通常将文本区组件JTextArea放置到滚动面板中:JScrollPanescrollpane=newJScrollPane(newJlextArea());滚动面板中只可以添加一个组件,然后通过滚动条来观看该组件。JScrollPane类提供了一些方法设置滚动面板显示的组件,以及滚动条的显示策略,如表所示。任务2创建常用容器与布局任务2创建常用容器与布局五、布局管理器在图形用户界面中,每个组件在容器中都有具体的位置和大小。使用布局管理器则可以使容器中的组件按照指定的策略进行摆放,管理整个窗体的布局。不仅如此,如果改变容器的大小,布局管理器也可以准确地把组件放到指定的位置,从而有效地避免版面出现混乱。在Java中,容器使用setLayout()方法设置布局。Swing提供了5种布局管理器:FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、CardLayout(卡片布局管理器)和GridBagLayout(网格包布局管理器)。任务2创建常用容器与布局1.流式布局管理器(FlowLayout)FlowLayout被称为流布局管理器,它是JPanel面板容器的默认布局管理器。FlowLayout类提供了以下3种格式的构造方法用于创建布局对象。(1)FlowLayout():(2)FlowLayout(intalign):(3)FlowLayout(intalign,inthgap,intvgap):2.边界布局管理器(BorderLayout)BorderLayout类提供了以下两种格式的构造方法。(1)BorderLayout():(2)BorderLayout(inthgap,intvgap):任务2创建常用容器与布局

BorderLayout布局方式3.网格布局管理器(GridLayout)GridLayout类提供了以下3种格式的构造方法。(1)GridLayout():(2)GridLayout(introws,intcols):(3)GridLayout(introws,intcols,inthgap,intvgap):4.卡片布局管理器(CardLayout)假设有一个容器c,使用CardLayout的一般步骤如下。(1)调用CardLayout类的构造方法创建CardLayout布局对象(2)调用容器的setLayout()方法设置容器布局(3)容器调用add(Strings,Componenta)方法将组件a加入容器c,并指定显示该组件的代号s。任务2创建常用容器与布局(4)使用CardLayout类的方法(如表所示)显示组件。任务2创建常用容器与布局5.网格包布局管理器(GridBagLayout)使用GridBagLayout布局管理器的步骤如下:(1)创建GridbagLayout布局管理器,并设置容器采用该布局管理器。(2)创建GridBagContraints布局约束对象,并设置该对象的相关属性。(3)调用GridBagLayout对象的setConstraints()方法建立GridBagConstraints对象和受控组件之间的关联。(4)向容器中添加组件:container.add(component);任务2创建常用容器与布局提示:如果将GridBagConstraints对象的属性gridx和gridy的值设置为GridBagConstraints.RELATIVE,表示当前组件紧跟在上一个组件之后。如果将gridheight和gridwidth属性的值设置为GridBagConstraints.RELATIVE,表示当前组件为所在行或列上倒数第二个组件;属性值为GridBagConstraints.REMAINDER,则表示当前组件为所在行或列上的最后一个组件。GridBagConstraints对象可以重复使用,只需要改变它的属性即可。任务2创建常用容器与布局6.自定义布局自定义布局的步骤如下:(1)容器调用setLayout(null)方法取消布局管理器。(2)组件调用Component.setBounds()方法设置每个组件的大小与位置。也可以调用容器中每个组件的setSize()和setLocation()方法分别设置大小和位置。任务2创建常用容器与布局使用常用组件任务3任务引入通过上一个任务的学习,小白学会了创建常用的几种容器,以及设置容器的布局方式。接下来就可以在容器中添加各种常用的组件了。知识准备组件是应用程序界面中的重要组成元素,丰富的组件种类构成了强大的软件开发资源。在程序开发过程中,根据不同的需求,选择适合的组件是一件技术性很强的工作,它关系到应用程序界面的美观性、适用性、方便性和安全性。任务3使用常用组件一、标签组件JLabel组件用于通过显示文本和图标提供提示信息,可以只显示其中之一,也可以两者同时显示。JLabel类提供了多种构造方法,用于创建多种形式的标签,常用的构造方法如下:publicJLabel():创建一个不带图标和文本的标签。publicJLabel(Iconicon):创建一个带图标的标签。publicJLabel(lconicon,intalign):创建一个带图标的标签,图标的水平对齐方式为align。任务3使用常用组件其中,水平对齐方式的取值为JLabel类中与水平布置方式有关的静态常量LEFT、CENTER、RIGHT。publicJLabel(Stringtext,intalign):创建一个带文本的标签,文字水平对齐方式为align。publicJLabel(Stringtext,Iconicon,intalign):创建一个带文本和图标的标签,标签内容的水平对齐方式为align。JLabel类还提供了一些用于设置标签的方法,如表所示。任务3使用常用组件在设置标签文字相对于图片的显示位置时,参数textPostion的取值为JLabel类中与垂直布置方式有关的静态常量TOP、CENTER、BOTTOM,说明如表所示。任务3使用常用组件如果要将一个图像显示在标签中,可以直接使用Icon接口和Imagelcon子类。lmagelcon类实现了Icon接口,可以根据现有图片创建图标。lmagelcon类提供了多个构造方法创建ImageIcon对象,下面简要介绍几个常用的构造方法。publicImagelcon():创建一个通用的Imagelcon对象。在后续的步骤中,需要使用该对象调用setlmage(Imageimage)方法设置图片。publicImagelcon(Stringfilename):直接从指定的图片源创建图标。publicImagelcon(Stringfilename,Stringdescription):从指定的图片源创建图标,同时为图标添加简短的描述。描述不会显示在图标上。publicImagelcon(URLlocation):利用位于计算机网络上的图像文件创建图标。任务3使用常用组件案例——创建带图标的标签本案例将指定的图片转换为图标,创建一个带图标的标签。(1)打开项目SwingDemo,在项目中新建一个名为FirstImageIcon的类。(2)运行文件,即可在指定位置显示创建的窗体,并在窗体中居中显示带图标的标签,如图所示。任务3使用常用组件

运行结果二、文本组件1.文本框组件(JTextField)JTextField组件实现一个文本框,用于接收用户输入的单行文本信息。JTextField类中几个常用的构造方法简要说明如下:publicJTextField():publicJTextField(Stringtext):publicJTextField(intfieldwidth):publicJTextField(Stringtext,intfieldwidth):任务3使用常用组件2.密码框组件(JPasswordField)JPasswordField组件实现一个密码框,用来接收用户输入的单行文本信息,创建、使用方法与JTextField组件基本相同。3.文本域组件(JTextArea)JTextArea组件实现一个文本域,文本域可以接收用户输入的多行文本。JTextArea类中几个常用的构造方法简要说明如下:publicJTextArea():publicJTextArea(Stringtext):publicJTextArea(introws,intcolumns):publicJTextArea(Documentdoc):publicJTextArea(Documentdoc,StringText,introws,intcolumns):任务3使用常用组件三、按钮组件按钮在图形界面中是较为常见的组件,用于触发特定动作。Swing提供多种按钮,例如JButton、JRadioButton、JCheckBox等。本节简要介绍这三种按钮的功能和使用方法。1.普通按钮组件(JButton)JButton类的主要构造方法有以下几种:publicJButton():创建一个Button对象。publicJButton(Stringtext):创建一个显示标签文字的Button对象。publicJButton(Iconicon):创建一个带图标的按钮。publicJButton(Stringtext,Iconicon):创建一个带标签文字和图标的按钮。任务3使用常用组件案例——创建动态图片按钮本案例制作一个不同状态下显示不同图片的动态按钮。(1)打开项目SwingDemo,在项目中新建一个名为ImageButton的类。(2)运行程序,即可在指定位置创建一个窗体,并默认在窗体中间区域显示按钮,如图示。任务3使用常用组件2.单选按钮组件(JRadioButton)JRadioButton组件实现一个单选按钮,可以单独使用,也可以与ButtonGroup类联合使用。JRadioButon类的常用构造方法主要有以下几种形式。publicJRadioButton():publicJRadioButton(Iconicon):publicJRadioButton(Iconicon,booleanselected):publicJRadioButton(Stringtext):publicJRadioButton(Stringtext,Iconicon):publicJRadioButton(Stringtext,Iconicon,booleanselected):任务3使用常用组件3.复选框组件(JCheckBox)JCheckBox类的对象实现一个复选框按钮。与单选按钮类似,复选框也用于提供多项选择,单击该组件可在选中和未选中两种状态之间进行切换。JCheckBox的常用构造方法有以下几种:publicJCheckBox():publicJCheckBox(Iconicon,booleanchecked):publicJCheckBox(Stringtext,booleanchecked):任务3使用常用组件四、列表组件Swing提供了两种列表组件:下拉列表框(JComboBox)与列表框(JList)。这两种列表组件都以列表的形式提供一系列的预设选择项,对于美化版面和空间有限的界面来说,是非常不错的选择。1.下拉列表框组件(JComboBox)JComboBox类的常用构造方法有以下几种:publicJComboBox():publicJComboBox(ComboBoxModeldataModel):ComboBoxModel是一个代表一般模型的接口,可以自定义一个类实现该接口,且必须实现以下两种方法:publicvoidsetSelectedltem(Objectitem):publicObjectgetSelectedltem():任务3使用常用组件在实现ComboBoxModel接口时,还可以继承AbstractListModel类,以便使用其中两个操作下拉列表框的重要方法:getsize()方法返回列表的长度;getElementAt(intindex)方法返回指定索引处的值。publicJComboBox(Object[]arrayData):publicJComboBox(Vectorvector):构造JComboBox对象后,利用下面几个常用的方法可以方便地操作下拉列表框:addItem(Objectobj):添加列表项。getItemCount():返回列表项的个数。removeItem(Objectobj):移除列表项。setEditable(Booleanflag):设置列表项是否可编辑。任务3使用常用组件2.列表框组件(JList)JList类的常用构造方法有以下几种:publicvoidJList():publicvoidJList(Object[]listData):publicvoidJList(Vect

温馨提示

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

评论

0/150

提交评论