当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

布局管理器与事件处理

发表于: 2012-02-06   作者:剑锋无刃   来源:转载   浏览:
摘要:   图形界面: 布局管理器: CardLayout:卡片布局,面板重叠放置,只能看到一个,最先添加的会被显示出来,可以进行翻动 两种构造方法: CardLayout()            创建一个间隙大小为 0 的新卡片布局。  CardLayout(int hgap, int vgap)

 

图形界面:

布局管理器:

CardLayout:卡片布局,面板重叠放置,只能看到一个,最先添加的会被显示出来,可以进行翻动

两种构造方法:

CardLayout() 

          创建一个间隙大小为 0 的新卡片布局。 

CardLayout(int hgap, int vgap) 

          创建一个具有指定的水平和垂直间隙的新卡片布局。 

          常用的方法:

previous(Container parent) 

          翻转到指定容器的前一张卡片。

          show(Container parent, String name) 

          翻转到已添加到此布局的具有指定 name 的组件

          next(Container parent) 

          翻转到指定容器的下一张卡片。

          first(Container parent) 

          翻转到容器的第一张卡片。

          last(Container parent) 

          翻转到容器的最后一张卡片。

         

          GridBagLayout:增强版的网格布局,组件可以跨行跨列的进行布局。

          构造方法:

          GridBagLayout() 

          创建网格包布局管理器。

          注意:

          该布局管理器的具体实现需要借助GridBagConstraints类,利用GridBagConstraints类的属性对组件进行设置,具体内容查看API文档。

         

菜单项:

JMenuBar:菜单栏的实现,将JMenu对象添加到菜单栏以构造菜单

构造方法:

JMenuBar() 

          创建新的菜单栏。

         

JMenu:菜单的该实现是一个包含JMenuItem的弹出窗口

构造方法:

JMenu(String s) 

          构造一个新JMenu,用提供的字符串作为其文本。

         

JMenuItem:菜单中的项的实现,菜单项本质上是位于列表中的按钮

构造方法:

JMenuItem(String text) 

          创建带有指定文本的JMenuItem。

         

AWT事件模型:

事件模型的三要素:

事件源(Object):事件的产生者。

事件(EventObject):描述发生了什么事情。  

事件监听(EventListener):事件的处理者

关系:

事件只与事件源有关,与事件监听无关

一个事件源可以注册多个事件监听。

一个事件监听器可以在多个事件源中注册。

一个事件源可以就同一类事件注册多个事件监听。

事件处理机制:委派式的处理机制(是一种松耦合)

组件自身会产生事件对象,但本身不一定负责处理,而是交给一个监听者去处理

实现监听的步骤:

a. 实现监听接口implements XxxxListener

b. 重写方法actionPerformed(ActionEvent e) 

c. 注册监听addXxxxListener(ActionListener l) 

适配器:一个重写了所有接口中方法的类

在java.awt.event包中,会有一些适配器,也就是把相应的XxxxListener,换成XxxxAdapter就是适配器。

在AWT中经常用匿名内部类来继承适配器做监听

 

 

 

观察者模式:

事件监听者对事件源进行监听,事件源会发生某些事件,监听者需要对事件作出相应的处理。

事件监听者(Observer):

处理事件

事件对象(Observable):

注册监听

取消监听

通知监听

编程步骤:

a. 定义一个监听者,使其实现Observer接口,实现其中的方法update(Observable o, Object arg)。

b. 定义一个事件对象,使其继承Observable类,定义一个产生事件的方法,在方法里去注册监听addObserver(Observer o)、标志改变setChanged()(如果不写,则说明该事件没有发生,监听者不会反映)、启动监听notifyObservers()。

注意:注册监听和标志改变不分先后,但标志改变和启动监听是不能互换的。

应用:当某事物发生变化,需要采取行动,则可以采用观察者模式。

适配器模式:

Adapter适配器模式是一种结构型模式,将两个互不兼容的类纠合在一起。

主要应对:由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的。

作用:在不改变源代码的情况下实现需求。

 

java.math.BigDecimal:不可变的、任意精度的有符号十进制数。

必须用String类型进行构造,才能实现精确计算

布局管理器与事件处理

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
线性布局有LinearLayout类来代表,Android的线性布局和Swing的Box有点相似(他们都会将容器里面的组
当选择使用 JPanel 和顶层容器的 content pane 时,需要考虑布局管理。 JPanel 缺省是初始化一个 Fl
4.CardLayout CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器
当选择使用 JPanel 和顶层容器的 content pane 时,需要考虑布局管理。 JPanel 缺省是初始化一个 Fl
当选择使用 JPanel 和顶层容器的 content pane 时,需要考虑布局管理。 JPanel 缺省是初始化一个 Fl
当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。JPanel缺省是初始化一个FlowLayout
10.7 CardLayout类 CardLayout布局管理器与其他的布局管理器十分不同。其他的布局管理器尝试一次显
在第9章中,我们了解了Swing组件集合中的各种弹出窗口以及选择器类。在本章中,我们将会了解AWT与Sw
当选择使用 JPanel 和顶层容器的 content pane 时,需要考虑布局管理。 JPanel 缺省是初始化一个 Fl
10.7 CardLayout类 CardLayout布局管理器与其他的布局管理器十分不同。其他的布局管理器尝试一次显
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号