JAVA第七章GUI学习与复习要点.pptx
- 文档编号:2676731
- 上传时间:2022-11-06
- 格式:PPTX
- 页数:39
- 大小:345.48KB
JAVA第七章GUI学习与复习要点.pptx
《JAVA第七章GUI学习与复习要点.pptx》由会员分享,可在线阅读,更多相关《JAVA第七章GUI学习与复习要点.pptx(39页珍藏版)》请在冰豆网上搜索。
河南大学软件学院Java编程基础编程基础主讲:
李丽GUI概述容器布局管理AWT和Swing常用控件Java的事件处理机制第七章第七章GUI编程编程图形用户界面(GraphicsUserInterface,GUI)计算机以图形界面的形式实现人机交互的方式。
图形用户界面在视觉上更容易接受、更简单直观。
图形用户界面设计的优劣直接影响到应用软件的易用性。
Java自JDK1.0提供了AWT(AbstractWindowToolkit,抽象窗体工具包),从JDK1.2又提供了Swing类包。
8.1GUI概述GUI的三要素:
组件,组件,集成了一定的功能模块,提供了公用接口以便外部调用,具有良好的可重用性。
容器,容器,在有些语言中也称为窗体,容器也是一种特殊的组件,容器中可以放置其他组件,并且通过布局管理器(LayoutManager)管理容器中各组件的位置。
事件,事件,每个组件都会触发动作事件,Java中不同的事件由不同的监听器(Listener)处理,组件是事件源,而某种监听器主要用来监听来自指定事件源产生的动作事件。
8.1GUI概述8.1GUI概述本章类的继承图:
Component类有如下几个常用方法来设置组件的大小,位置和可见性。
Component类类setLocation(intx,inty);设置置组件位置件位置setSize(intwidth,intheight);设置置组件大小件大小setBounds(intx,inty,intwidth,intheight);设置置组件位置和大小件位置和大小setVisble(Booleanb);设置置组件的可件的可见性性容器是一件特殊的组件,其它组件可以放置到容器中,并且容器是一件特殊的组件,其它组件可以放置到容器中,并且通过布局管理器进行布局控制。
通过布局管理器进行布局控制。
Java中,常见的容器包括中,常见的容器包括Frame/JFrame,Panel/JPanel,Dialog/Jdialog等。
等。
每种容器都采用一种默认的布局管理方式每种容器都采用一种默认的布局管理方式Frame/JFrame:
BorderLayoutPanel/JPanel/Applet:
FlowLayout8.2容器Window:
可独立存在的顶级窗口Panel:
可作为容器容纳其它组件,但不能独立存在,必须被添加到其它容器中。
AWT提供的两个主要的容器类:
提供的两个主要的容器类:
8.3容器Frame构造方法和方法构造方法和方法说明说明publicFrame()构造一个无标题的窗体,初始不可见publicFrame(Stringtitle)构造一个标题为title的窗体,初始不可见publicStringgetTitle()获取窗体的标题publicvoidsetTitle(Stringtitle)设置窗体的标题为titlepublicImagegetIconImage()获取窗体的图标publicvoidsetIconImage(Imageimage)设置窗体的图标publicMenuBargetMenuBar()获取菜单栏publicvoidsetMenuBar(MenuBarmb)设置菜单栏publicbooleanisResizable()判断是否可以改变窗体的大小publicvoidsetResizable(booleanresizable)设置可以更改窗体的大小Frame对象有标题,允许通过拖拉来改变窗口的位置、大小初始化时为不可见,可用setVisble(true)来显示。
默认使用BorderLayout作为其布局管理器Frame窗口的几个特征:
窗口的几个特征:
例:
TestFrame.javaPanel是一种最简单的容器类,应用程序可以将组件放置在是一种最简单的容器类,应用程序可以将组件放置在Panel容器里,当然容器里,当然Panel也可以嵌套,但是需要注意的是,也可以嵌套,但是需要注意的是,Panel容器不能够独立存在,它必须依托其它容器如容器不能够独立存在,它必须依托其它容器如Frame而存在。
而存在。
JPanel是是javax.swing.JComponent类的子类,用法和类的子类,用法和Panel类类似,它也不能独立存在,需要嵌入到其它容器中如似,它也不能独立存在,需要嵌入到其它容器中如JFrame。
8.3容器容器Panel例:
TestPanel.java8.1GUI概述本章类的继承图:
Window:
可独立存在的顶级窗口Panel:
可作为容器容纳其它组件,但不能独立存在,必须被添加到其它容器中。
AWT提供的两个主要的容器类:
提供的两个主要的容器类:
8.4布局管理器布局管理器在Java中,由于要兼顾Java应用程序在不同平台上的通用性,Java的组件在容器中的具体位置是通过布局管理器LayoutManager实现的。
LayoutManager只是一个接口,在AWT包中提供了FlowLayout、BorderLayout、GridLayout、GridBagLayout和CardLayout五种布局管理器。
在Swing中又增加了BoxLayout布局管理器,这些类均实现了LayoutManager接口。
8.4布局管理器布局管理器FlowLayoutFlowLayout是一种最简单的布局管理器,其主要思想是让容器内的组件按照行优先的方式排列,一行排列到边界后就回折回到下一行继续排列,依次类推。
Panel默认使用FlowLayout布局管理器。
构造方法和方法构造方法和方法说明说明publicFlowLayout()构造一个新的FlowLayout对象,居中对齐,默认水平和垂直间隙是5个单位publicFlowLayout(intalign)构造一个新的FlowLayout对象,对齐方式是指定的,默认的水平和垂直间隙是5个单位publicFlowLayout(intalign,inthgap,intvgap)创建一个新的FlowLayout对象,具有指定的对齐方式以及指定的水平和垂直间隙publicintgetAlignment()获得此布局管理器的对齐方式publicvoidsetAlignment(intalign)设置此布局管理器的对齐方式publicintgetHgap()获得水平间隙publicvoidsetHgap(inthgap)设置水平间隙publicintgetVgap()获得垂直间隙publicvoidsetVgap(intvgap)设置垂直间隙TestFlowLayout.javaJFramef=newJFrame(测试FlowLayout);JPanelp=newJPanel();for(inti=0;i5;i+)p.add(newJButton(按钮+i);f.add(p);f.pack();f.setVisible(true);8.4布局管理器布局管理器FlowLayoutPack是Window容器提供的一个方法,该方法用于将窗口调整到最佳大小。
通过Java编写图形用户界面程序时,很少直接设置窗口的大小。
8.4布局管理器BorderLayoutBorderLayout是Frame和JFrame的默认布局管理器,BorderLayout把窗体分隔成NORTH、SOUTH、EAST、WEST和CENTER五个区域,并且根据窗体的大小自动调整组件的大小。
构造方法和方法构造方法和方法说明说明publicBorderLayout()构造一个组件间无间距的BorderLayout实例publicBorderLayout(inthgap,intvgap)构造一个组件间水平间距为hgap,垂直间距为vgap的BorderLayout实例publicintgetHgap()获取组件间水平间距publicintgetVgap()获取组件间垂直间距publicvoidsetHgap(inthgap)设置组件间水平间距publicvoidsetVgap(intvgap)设置组件间垂直间距publicvoidlayoutContainer(Containertarget)使用此布局管理器对target容器进行布局管理如果不指定组件加入的位置,默认加到如果不指定组件加入的位置,默认加到CENTER区。
区。
8.4布局管理器BorderLayoutimportjava.awt.*;importjavax.swing.*;classTestBorderLayoutpublicstaticvoidmain(Stringargs)JFramef=newJFrame();JButtonb1=newJButton(东东);JButtonb2=newJButton(西西);JButtonb3=newJButton(南南);JButtonb4=newJButton(北北);JButtonb5=newJButton(中中);f.add(b1,East);f.add(b2,BorderLayout.WEST);f.add(b3,BorderLayout.SOUTH);f.add(b4,BorderLayout.NORTH);f.add(b5,BorderLayout.CENTER);f.setBounds(100,100,500,200);f.setVisible(true);TestBorderLayout.java注意:
使用BorderLayout布局管理器时需要注意以下3点:
如果没有在NORTH、WEST、EAST、SOUTH这4个区域的任一区域放置组件时,CENTER区域会覆盖未放置组件的区域;理论上讲,BorderLayout布局管理器最多只能放置5个组件,在同一个区域上同时放置2个及其以上的组件时,只能显示最后放置的组件;如果要在使用BorderLayout布局管理器的容器中放置5个以上的组件,可以在BorderLayout布局管理器的任何一个区域再次嵌套其它容器,如Panel。
8.4布局管理器BorderLayoutGridLayout布局管理器将空间划分成规则的矩形网格,每个单元格区域大小相等。
组件被添加到每个单元格中,先从左到右添满一行后换行,再从上到下。
构造方法和方法构造方法和方法说明说明publicGridLayout()创建具有默认值的创建具有默认值的GridLayout实实例例publicGridLayout(intr,intc)创建行数为创建行数为r和列数为和列数为c的的GridLayout实例实例publicGridLayout(intr,intc,inthgap,intvgap)创建指定行数和列数及间距的创建指定行数和列数及间距的GridLayout实例实例publicvoidaddLayoutComponent(Stringn,Componentc)将指定名称的组件添加到该布局将指定名称的组件添加到该布局管理器实例中管理器实例中publicvoidremoveLayoutComponent(Componentc)从该布局管理器实例中删除指定从该布局管理器实例中删除指定的组件的组件publicintgetColumns()获取该布局管理器实例的列数获取该布局管理器实例的列数publicintgetRows()获取该布局管理器实例的行数获取该布局管理器实例的行数publicvoidsetColumns(intc)设置该布局管理器实例的列数设置该布局管理器实例的列数publicvoidsetRows(intr)设置该布局管理器实例的行数设置该布局管理器实例的行数8.4布局管理器GridLayout8.4布局管理器GridLayoutTestGridLayout.javaimportjavax.swing.*;importjava.awt.*;classTestGridLayoutpublicstaticvoidmain(String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 第七 GUI 学习 复习 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)