欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Java图形界面设计.ppt

    • 资源ID:6509683       资源大小:1.87MB        全文页数:92页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java图形界面设计.ppt

    第12章图形界面设计,2,本章主要内容,12.1 图形用户界面设计12.2 图形用户界面工具包Swing12.3 创建组件12.4 布局管理器,3,12.1 图形用户界面设计,图形用户界面(Graphics User Interface,GUI)用图形的方式,借助菜单。按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统运行的结果同样以图形方式显示给用户的技术。Java的GUI程序设计是Java程序设计的基础。,4,12.1 图形用户界面设计,Java提供的两个处理图形用户界面的类库:Java.awt包和javax.swing包,Sun已经提供了一个跨平台GUI开发工具包java.awt(抽象窗口工具箱),Sun又开发了一个新的GUI开发工具包javax.swing解决了awt中存在的本地化问题,5,12.1 图形用户界面设计,AWT 和 Swing 是 Java 设计 GUI 用户界面的基础.与AWT 的重量级组件不同,Swing 中大部分是轻量级组件。正是这个原因,Swing 几乎无所不能,不但有各式各样先进的组件,而且更为美观易用.所以一开始使用 AWT 的程序员很快就转向使用 Swing 了。但是因为 Swing 是架构在 AWT 之上的,没有 AWT 就没有 Swing。所以程序员可以根据自己的习惯选择使用 AWT 或者是 Swing。但是,最好不要二者 混用除开显示风格不同不说,还很可能造成层次(Z-Order)错乱,6,12.2图形用户界面工具包Swing,Java图形用户界面的基本元素包括:用户界面组件(组件类)事件处理模块(事件类)图形和图像工具(图形类、图像类)布局管理器(布局类)它们主要都在javax.swing包中,Swing是Java包的一部分。,7,8,12.2.1 Swing组件分类,组件:构成图形用户界面的各种元素。构建图形用户界面的类可以分成三组:容器类(container class)辅助类(helper class)组件类(component class)。,9,12.2.1 Swing组件分类,容器类容器类组件中可以包含其他组件,也可以包含其他容器。容器又分为两种:顶层容器和非顶层容器。顶层容器是可以独立的窗口,Swing的顶层容器有JFrame、JApplet和JDialog等。非顶层容器,不是独立的窗口,它们必须位于窗口之内,非顶层容器包括JPanel及JScrollPanel等。,10,12.2.1 Swing组件分类,辅助类和组件类都属于非容器类组件不能包含其他组件的组件,其种类较多。辅助类辅助类是用来描述组件属性的,辅助类通常包含在java.awt包中,Swing组件不能取代AWT的全部类,只能替代AWT的GUI组件类,AWT辅助类保持不变。组件类所有Swing GUI组件类(除JFrame、JApplet和JDialog)都是JComponent类的子类,例如,JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton和JMenu等。Swing轻型组件分类参见教材P202 表12.1,11,12.2.1 Swing组件分类,一般独立应用程序主要是要框架JFrame作为容器,在JFrame上通过放置JPanel面板来控制图形界面的布局;如果应用到浏览器中,则主要使用JApplet来做容器。JApplet是一个能够嵌入到浏览器中运行的特殊容器。,12,12.2.1 Swing组件分类,1.Swing容器的层次关系一般的Swing窗口,实际上包含几个“层次”。,13,12.2.1 Swing组件分类,1.Swing容器的层次关系一般的Swing窗口,实际上包含几个“层次”,各个层的关系如教材P202 图12.2所示。顶层容器。是一个窗口容器对象,该对象包含了Swing窗口的各个层次,在该对象里面可以加入其它窗口对象。根窗格。是在创建顶层容器后自动创建的,供Swing顶层容器在后台使用,是顶层容器中做包含的最内层,通常无法在这一层上做任何操作与处理。分层窗格。加入分层窗格中的组件可以设置其图层层次,且不会被内容窗格中的对象屏蔽。是其它窗格的父级。,14,12.2.1 Swing组件分类,菜单栏。菜单栏被添加到分层窗格的顶部。是可选的。内容窗格。是分层窗格中的某一层,是一个JPanel对象,在窗体中起着工作区的作用。可以放置大部分的可见组件。玻璃窗格。主要用来产生绘图效果,以及用来触发窗口程序的各种事件。玻璃窗格浮在最上面,默认情况下是隐藏的。,15,12.2.1 Swing组件分类,16,12.2.1 Swing组件分类,2.框架类JFrame是Java应用程序的顶层容器。JFrame是java.awt.Frame的扩展版本,是一个window子类,在使用Swing类库实现用户图形接口,必须继承该类。JFrame容器包括窗口标题、窗口外观、窗口边界、调整窗口大小的图标、关闭和最小化窗口的图标。并且可以直接在容器上添加组件,如按钮、文本等。,17,12.2.1 Swing组件分类,构造方法:public JFrame()throws HeadlessException。创建了一个新的容器窗口,默认该窗口是不可见的。public JFrame(String title)throws HeadlessException 创建一个新的容器窗口,通过方法的参数设置窗口标题,该窗口默认是不可见的。,18,12.2.1 Swing组件分类,该类的常用方法(P203-204)getContentPane()该方法返回一个框架对象,使用该框架对象来添加组件,如增加按钮、菜单、工具栏、列表框等组件。setSize(int width,int hight)设置窗口尺寸、窗口大小以像素为单位计算。getJMenuBar()返回此窗体上设置的菜单栏。setJMenuBar(JMenuBarmenubar)设置此窗体的菜单栏。setIconImage(Imageimage)设置要作为此窗口图标显示的图像。,19,例App12_1,辅助类,组件类,20,例App12_1,为什么在该实例中被没有显示背景色?JFrame默认采用了FlowLayout布局管理器,你的组件在该布局管理器中被塞满整个frame,挡住了背景。就是说,实际上JFrame还是有背景的一般用JFrame的时候要初始化一个JPanel,把组件放在JPanel里,然后把JPanel放到JFrame里,这样可以较好的控制组建位置等其他的东西。在这种方式下直接给JPanel设置setBackground就可以一直看到背景了,命令提示符环境,21,例App12_1_1,22,例App12_1_1,例App12_1_2,23,12.2.1 Swing组件分类,3.面板类JPanel面板是一种没有标题栏、没有边框的中间层容器,在该容器上可以放置其他组件如单选按钮、列表框等。还可以包含其他容器,如一个新的JPanel对象,从而方便地实现容器的嵌套。在面板创建后是无法单独显示的。面板不是顶层容器,必须放到其他容器内,也可以放入另一个面板内。必须放在JFrame或Applet这样的顶层窗口中才可以显示。一个界面只可以有一个JFrame窗体组件,但可以有多个JPanel面板组件,24,12.2.1 Swing组件分类,3.面板类JPanel该类的构造函数:JPanel():创建一个面板,并且该面板组件的布局管理器为FlowLayout()。JPanel(LayoutManager layout):创建一个面板,且该面板设置了指定的布局管理器。布局管理器管理在容器上放置的组件,具体的内容会在12.4节详细介绍。,25,12.2.1 Swing组件分类,3.面板类JPanel常用方法:,JPanel默认的布局管理器是FlowLayout,可以使用setLayout()方法改变其默认布局。也可以采用包含它的容器不同的布局管理器。,26,例App12_2,在框架中加入面板,27,例App12_2,在框架中加入面板,28,例App12_2,在框架中加入面板,29,12.2.1 Swing组件分类,4.组件类又称控制组件(控件),它里面不能包含其他组件。作用:完成与用户的交互,包括接收用户的命令、接收用户输入的文本或用户的选择、向用户显示文本或图形。常用控件:命令类、选择类、文字处理类等。,30,12.2.1 Swing组件分类,5.图形界面设计的步骤创建组件(Component):创建组成界面的各种元素,如按钮、文本框等。指定布局(Layout):根据具体需要排列界面上各元素的位置关系。响应事件(Event):定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的交互功能。,31,12.2.2 颜色类、字体类、图像图标类,1.颜色类Color属于java.awt每种颜色均看作是由红(R)、绿(G)、蓝(B)三色组成。构造方法:Color(int r,int g,int b)颜色常量值 Color.black,Color.blue,Color.gray,Color.red Color.white 例如 Color c=new Color(int rgb),参数取值0255,越大则表明这种颜色的成分越重。,32,12.2.2 颜色类、字体类、图像图标类,2.字体类Font用来规范组件所用的字体样式、大小与字形等。构造方法:Font(String font_name,int style,int size),字体名称,字形样式:PLAIN、BOLD、ITALIC,字号大小,33,Font类的成员方法 public string getName():获得字体的名称 public int getStyle():获得字体的样式 public int getSize():获得字体的大小 public boolean isPlain():若字体是正常型,则返回true public boolean isBold():若字体是粗体,则返回true public boolean isItalic():若字体是斜体,则返回true,12.2.2 颜色类、字体类、图像图标类,34,12.2.2 颜色类、字体类、图像图标类,3.图标图像类ImageIconJava语言使用类表示图标。表12.12给出了ImageIcon类的常用构造方法,表12.13给出了ImageIcon类的常用方法。,35,Java中Image类与ImageIcon类的区别,Image类一般尺寸过大,不适合作ImageIcon类。ImageIcon imageIcon=new ImageIcon(“duke.gif”);/Icon由图片文件形成Image image=imageIcon.getImage();/但这个图片太大不适合做Icon/为把它缩小点,先要取出这个Icon的image,然后缩放到合适的大小Image smallImage=image.getScaledInstance(30,20,Image.SCALE_FAST);/再由修改后的Image来生成合适的IconImageIcon smallIcon=new ImageIcon(smallImage);/最后设置它为按钮的图片JButton iconButton=new JButton(smallIcon);,36,Java中Image类与ImageIcon类的区别,而由ImageIcon类到Image类,可以通过:ImageIcon imageIcon=new ImageIcon(“duke.gif”);/Icon由图片文件形成JFrame jf=null;jf.setImageIcon(ImageIcon.getImage();,37,12.3 创建组件,12.3.1 标签12.3.2 命令按钮、复选框、单选按钮12.3.3 文本编辑组件、滚动窗格12.3.4 选项窗格,38,12.3.1 标签JLabel,标签用来在窗口中显示文字的控件在整个应用程序中,不仅把 JLabel 用作文本描述,还将它用作图片描述。每当在 Swing 应用程序中看到图片的时候,它就有可能是 JLabel。JLabel 对于 Swing 初学者来说没有许多意料之外的方法。,39,12.3.1 标签JLabel,基本的方法get/setText():获取/设置标签的文本。get/seticon():获取/设置标签的图片。get/setHorizontalAlignment():获取/设置文本的水平位置。get/setVerticalAlignment():获取/设置文本的垂直位置。get/setDisplayedMnemonic():获取/设置标签的访问键(下划线文字)。get/setLableFor():获取/设置这个标签附着的组件,所以当用户按下 Alt+访问键时,焦点转移到指定的组件。,40,例App12_3,41,例App12_3,42,例App12_3,43,例App12_4,在框架窗口中加入指定大小的标签,并设置当鼠标悬停在标签上时给出相应的提示信息。Swing中的几乎所有组件都是继承自JComponent,它提供了一个setToolTipText(String str)方法,来创建工具提示。,44,例App12_4,45,例App12_4,46,12.3.2 命令按钮、复选框、单选按钮,1.命令按钮Jbutton用户用鼠标单击它来控制程序运行的流程。JButton创建后通过容器的add()将其放入容器。构造方法及常用方法见教材P212,213 表12.16、12.17,47,例App12_5,48,例App12_5,49,12.3.2 命令按钮、复选框、单选按钮,2.复选框JCheckBox、单选按钮JbuttonJCheckBox可以单独使用,而单选按钮必须配合javax.swing包中的ButtonGroup类将其组成单选按钮组来使用。如果有多个复选框,那么也需要ButtonGroup类将其组成复选框按钮组来使用。重要的 ButtonGroup 方法是:add():添加 JCheckBox 或 JRadioButton 到 ButtonGroup。getElements():获得 ButtonGroup 中的全部组件,允许对它们进行迭代,找到其中选中的那个。,50,例App12_6,51,例App12_6,注意:ButtonGroup不是的子类,所以不能添加到容器中,52,例App12_6,53,例App12_6,54,12.3.3 文本编辑组件与滚动窗格,1.文本行组件JTextField文本行组件JTextField主要用于接收用户键盘输入的文本。设置文本的方法:get/setText(),用于获取/设置 JTextField 中的文本,55,12.3.3 文本编辑组件与滚动窗格,2.密码文本行组件JPasswordFieldPasswordField主要用于输入密码getEchoChar():获取每次字符输入时在 JPasswordField 中显示的字符。默认值为“*”。setEchoChar():设置每次字符输入时在 JPasswordField 中显示的字符。getPassword():这是从 JPasswordField 中获得口令的恰当方法,因为它返回一个包含口令的 char。为了保证恰当的安全性,数组应当被清为 0,以确保它不会保留在内存中。,56,12.3.3 文本编辑组件与滚动窗格,3.文本区组件JTextArea is/setLineWrap():设置在行过长的时候是否要自动换行。is/setWrapStyleWord():设置在单词过长的时候是否要把长单词移到下一行。文本区组件JTextArea 通常与滚动窗格组件JScrollPane一起使用。4.滚动窗格组件JScrollPane 用 JTextArea 调用 JScrollPane 的构造函数,这为 JTextArea 创建了在文本过长时滚动的能力:JScrollPane scroll=new JScrollPane(getTextArea();add(scroll);,57,例App12_7,58,例App12_7,59,例App12_7,60,12.3.4 选项窗格JTabbedPane,JTabbedPane组件中允许包含多个选项卡。用户选取项目的一种组件,用户利用该组件来表JTabbedPane类的构造方法及常用方法见教材中表12.25、12.26例如:JTabbedPane tab=new JTabbedPane();tab.add(“Java”,new JLabel(“Java”);JTabbedPane类有多个addTab()方法,这里采用了其中一种,第一个参数是页签的标题,第二个参数是页签上放置的组件,如JLabel,当然可以是任意的组件。,61,例App12_8,62,例App12_8,63,例App12_8,64,12.4 布局管理器,布局管理即页面管理。页面管理(layout):指窗口上的组件遵循一定的规则来排列,并会随着窗口大小的变化来改变组件大小与位置的一种布局方式。自动布局:当为一个容器指定一个布局管理器后,将一个组件加入该容器中时,布局管理器就能自动设置该组件的大小和位置。,65,12.4 布局管理器,java.awt包中共定义了五种布局管理器,每个布局管理器对应一种布局策略,分别是:流式布局管理器FlowLayout边界式布局管理器BorderLayout卡片式布局管理器CardLayout网格式布局管理器GridLayout网格包布局管理器GridBagLayout。,66,12.4 布局管理器,java.Swing包提供的布局管理器有:盒式布局管理器BoxLayout重叠布局管理器OverlayLayout弹簧布局管理器SpringLayout,67,12.4.1 流式布局管理器FlowLayout,布局策略组件按照加入容器的先后顺序从左向右排列;一行排满后就自动地转到下一行继续从左向右排列;每一行中的组件都居中排列。默认居中对齐,可以通过FlowLayout(int align)方法指定对齐方式,68,12.4.1 流式布局管理器FlowLayout,FlowLayout布局管理器是Panel、Applet和JPanel默认的布局管理方式。布局管理器的容器中的组件大小不随容器大小的变化而改变.当容器中的组件不多时,使用这种布局策略非常方便。是JPanel默认的布局管理方式。构造方法及常用方法见教材表12.2712.29见教材例12.9,69,例App12_9,70,例App12_9,71,12.4.2 边界式布局管理器BorderLayout,将显示区域按地理方位分为东(East)、西(West)、南(South)、北(North)、中(Center)五个区域。将组件加入容器中,若没有指定区域,则默认为中间;若将组件加入到已被占用的位置,将会取 代原先的组件。,72,12.4.2 边界式布局管理器BorderLayout,利用add()添加组件时必须指出组件的摆放位置。是JFrame、JApplet、JDialog默认的布局管理方式。在BorderLayout类的定义中这5个区域用5个常量值表示:EAST、WEST、SOUTH、NORTH和CENTER。假设容器为cp组件为jb。则将组件添加到容器上的方式为:BorderLayout bl=new BorderLayout();Cp.add(jb,BorderLayout.CENTER);不是五个部分都必须添加中间组件会自动调节大小,73,例App12_10,74,例App12_9,75,12.4.3 网格式布局管理器GridLayout,提供的页面布局规则是将容器的空间划分成若干行与列的网格形式,在容器上添加组件时,它们会按从左到右、从上到下的顺序在网格中均匀排列。网格的行数和列数可以在创建GridLayout对象的构造方法里指定。若控件数正好是行列,则按行、列数放置;若控件数超过了行列,则先满足行。利用GridLayout布局策略时,容器中各组件的宽度相同,所有组件的高度也相同,当容器尺寸发生变化时,各组件的相对位置不变。构造方法及常用方法见教材表12.33、12.34,76,例App12_11,77,例App12_11,78,例App12_11,79,例App12_11,80,例App12_11,81,12.4.4 卡片式布局管理器CardLayout,页面布局方式是把“窗口容器”中的所有组件如同堆叠起来的一付“扑克牌”,每次只能显示最上面的一张一样,这个被显示的组件将占据所有的容器空间。使用add()往窗口容器中加入组件时应为每个组件赋予一个名字。依据这个名字利用CardLayout类所提供的方法来控制其他组件是否显示。该布局方式每次仅有一个组件是可见的。利用卡片布局管理器时,通常要用到多个容器,其中一个容器使用卡片布局管理器,而另外的容器使用其它布局管理器。,82,例App12_12,83,例App12_12,84,例App12_12,85,12.4.5 网格包布局管理器GridBagLayout,将容器中的组件按行、列的位置摆放,但各组件所占据的空间可以是互不相同的。可以为每个组件指定其占据的网格数,可以保留组件原来的大小,可以按任意顺序随意加入容器的任意位置,从而可以真正自由地安排容器中的组件的大小和位置。每个组件都要与一个网格包约束条件的实例对象来配合使用,该实例对象指定组件如何放置在它的显示区域内。,86,例App12_13,87,例App12_13,88,例App12_13,89,例App12_13,90,12.4.6 盒式布局管理器BoxLayout,BoxLayout是一种Swing布局管理器,这种布局策略是在一行或一列中摆放组件。假设容器为jp,设置该容器的盒子布局管理器的方式为:jp.setLayout(new BoxLayout(jp,BoxLayout.Y_AXIS);BoxLayout的构造函数要求把欲接受管理器控制的容器对象作为第一个参数,而第二个参数说明了组件的布局方向,91,例App12_14,92,12.4.7重叠布局管理器OverlayLayout和弹簧布局管理器SpringLayout简介,重叠布局管理器OverlayLayout和弹簧布局管理器SpringLayout均是Swing中定义的布局管理器。具有OverlayLayout布局策略的容器,将加入该容器的所有组件叠放在一起,第一个被家人容器的组件会放在容器的最前面。SpringLayout的主要思想是在组件的周围放置一个灵活的弹簧,这种弹簧可以压缩或伸长,把组件堆放到要求的位置。,

    注意事项

    本文(Java图形界面设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开