欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

布局管理器与事件处理

程序员文章站 2022-06-01 13:03:26
...

 

图形界面:

布局管理器:

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类型进行构造,才能实现精确计算