Java第十一章笔记

图形用户界面描述

java.awt包: 提供了大量进行GUI设计所使用的类和接口,是进行GUI程序设计的基础。
javax.swing包:由100%纯Java实现的, 没有本地代码,不依赖操作系统的支持,因而也称为轻量级(light-weighted) 组件,它的出现使得Java的图形用户界面上了一个台阶。

创建图形用户界面主要有哪些步骤呢?

(1)创建容器
(2)布局管理
(3)添加组件
(4)事件处理

JFrame类

在这里插入图片描述
容器Container是一个类,它允许组件被放置在其中。

方法名方法功能
JFrame( )构造JFrame的一个实例(初始时不可见)
JFrame(String title)构造一个初始不可见的、具有指定标题的JFrame对象。
方法名方法功能
boolean isResizable()判断frame是否可调整大小
remove( MenuComponent m)从frame移除指定的菜单栏
setIconImage( Image image)设置frame最小化时显示的图标
setJMenuBar(MenuBar mb)将frame的菜单栏设置为指定的菜单栏
setResizable( boolean resizable)设置frame是否可由用户调整大小
setTitle(String title)将frame的标题设置为指定的字符串
方法名方法功能
setSize( int width,int height)设置frame大小
setLocation(int x,int y)设置frame位置,其中(x,y)为左上角坐标
setDefaultCloseOperation( int operation)DO_NOTHING_ ON _CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE

常用布局

布局管理

Java为了实现跨平台的特性并获得动态的布局效果,将容器内的所有组件安排给一个"布局管理器”负责管理,如排列顺序组件大小位置等。

不同的布局管理器使用不同算法策略,容器可以通过setLayout方法选择不同的布局管理器来决定布局。

Java提供了FlowLayoutBorderLayout
CardLayoutGridLayoutBoxLayout
GridBagLayout等多种布局管理类,以满足不
同应用的需求,这些布局管理类包含在java.awt
javax.swing包中。

流式布局一一FlowLayout

FlowLayoutJPanel类缺省的布局管
理器。其组件的放置规律是从上到下从左
到右
进行放置。

方法名方法功能
FlowLayout( int align, int hgap, int vgap); 如: new FlowLayout(FlowLayout.LEFT,20,40);第一个参数是组件的对齐方式,第二个参数是组件之间横向间隔,第三个参数是组件之间的纵向间隔,单位是象素。
FlowLayout(int align); 如: new FlowLayout(FlowLayout.LEFT);它具有指定的对齐方式,默认的水平和垂直间隙是5个单位。
FlowLayout();间隔和纵向间隔都是缺省值5个象
边界布局一一BorderLayout

BorderLayout是JFrame缺省的布局管理
器,如图所示它把容器分成5个区域:
North,
South,
East, WestCenter,每个区域只
能放置一个组件。
在这里插入图片描述

方法名方法功能
BorderLayout(int hgap, int vgap);构造一个具有指定组件间距的边界布局
BorderL ayout();构造一.个组件之间没有间距的边界布局
容器嵌套

一个包含了多个组件的容器本身也可以作为
一个组件加到另一个容器中去,容器中再添
加容器,叫做容器的嵌套

实现容器的嵌套,需要借助于JPaneI作为
中间的容器。
在这里插入图片描述
JPanel常用构造方法

方法名方法功能
JPanel(LayoutManager layout)创建具有指定布局管理器的JPanel容器
JPanel()使用默认的布局管理器FlowLayout创建JPanel容器
卡片布局一CardLayout

CardLayout布局将容器中的每个组件
看作一张卡片,一次只能看到一张卡片。

CardLayout主要构造方法:

方法名方法功能
CardLayout ()创建一个间距大小为0的卡片布局
CardLayout(int hgap, int vgap)创建一个指定水平间距和垂直间距的卡片布局

卡片布局一CardLayout

方法名方法功能
void first(Container parent)移到指定容器的第一张卡片
Void next(Container parent)移到指定容器的下一张卡片
void previous( Container parent)移到指定容器的前一张卡片
void last(Container parent)移到指定容器的最后一张卡片
void show(Container parent,String name)显示指定卡片

网格布局-- GridLayout

GridLayout布局以矩形网格形式对
容器的组件进行布置。容器被分成大小
相等的矩形,一个矩形中放置一个组件。

GridLayout主要构造方法

方法名方法功能
GridLayout()以默认的单行、每列布局一个组件的方式构造网格布局
GridLayout(int rows,int cols)以指定的行和列构造网格布局
GridLayout(int rows,int cols,int hgap,int vgap)以指定的行、列、水平间距和垂直间距构造网格布局
事件处理

Java事件处理四要素

事件源:究竟是谁引发了事件的发生。在面向对象编程语言中,事件源指的是引发事件发生的各个组件。

事件:即引发了什么类型的事件发生。
在Java中不同类型的事件会对应相应
的事件类。

事件处理者:究竟谁有能力对事件进行处理。

注册:建立事件源和事件处理者的关联。

例:

在这里插入图片描述
在这里插入图片描述

事件类型触发事件的动作
ActionEvent当用户单击按钮、选择菜单项或选择一个列表项时产生ActionEvent事件
ItemEvent当用户在组合框选择一项时产生ItemEvent事件
TextEvent当文本域或文本框中的内容发生变化时产生TextEvent事件
FocusEvent组件得到焦点或失去焦点时发生
WindowEvent窗口被激活、图标化、还原或关闭时发生
KeyEvent按下或释放一个键时发生
MouseEvent按下、释放鼠标按钮,移动或拖动鼠标时发生
接口需要实现的方法说明
ActionListeneractionPerformed(ActionEvent e)最广泛使用的事件处理接口
ItemListeneritemStateChanged (ItemEvent e)在用户已选定或取消选定某项时调用,用于列表及具有选项变化的组件
TextListenertextValueChanged (TextEvent e)文本的值已改变时调用
FocusListenerfocusGained(FocusEvent e)focusLost(FocusEvent e)1.组件获得键盘焦点时调用2.组件失去键盘焦点时调用
KeyListenerkeyPressed(KeyEvent e) keyReleased(KeyEvent e) keyTyped(KeyEvent e)1.按下某个键时 2. 释放某个键时 3.键入某个键时
MouseListenermouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed( MouseEvent e) mouseReleased MouseEvent e)1.鼠标按键在组件上单击 2.(按下并释放) 3. 鼠标进入到组件 4. 鼠标离开组件 5.鼠标按键在组件上按下鼠标按钮在组件上释放
MouseMotion ListenermouseDragged( MouseEvent e) mouseMoved( MouseEvent e)1.鼠标按键在组件上按下并拖动2.鼠标光标移动到组件上
接口适配器
ActionListener
ItemIistencr
AdjustmentListener
ComponentI istenerComponentAdapter
MouseListenerMouseAdapter
MouseMotionListenerMouseMotionAdapter
WindowListenerWindow Adapter
KeyListenerKeyAdapter
接口需要实现的方法说明
MouseListenermouseClicked( MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased( MouseEvent e)1.鼠标按键在组件上单击 2.(按下并释放)3.鼠标进入到组件4.鼠标离开组件4.鼠标按钮在组件上释放
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值