GUI设计与事件处理

基本问题

如何开发Java程序图形界面?它需要引入哪些包?

由于Java自身提供了许多强大的用于开发桌面程序的API,Java程序的图形界面可以使用Java提供的各种用于设计GUI的类来进行开发。Java已经将GUI设计需要用到的各种基础部件包装在了相应的类中,Java中的GUI类可以大致分为组件类和容器类两种,使用时我们只需要引入这些类,使用面向对象的思想来组合、操作这些类,比如将组件类的对象“放置”在容器类的对象中,就可以创建相应的GUI界面。而如果想创建拥有个性化功能的组件或容器类,只需创建Java提供的这些类的子类,在子类中添加新的属性、方法或重写父类的属性、方法即可。

进行GUI设计需要引入的包有:

  • java.awt 包(Abstract Window Toolkit 抽象窗口工具包)
  • javax.swing

什么是布局管理器,它有什么作用?

Java布局管理器是java.awt包和javax.swing包中用于管理容器中组件布局的一系列类。布局管理器为容器内的组件提供布局策略,当把组件添加到容器中时,布局管理器能够控制组件在容器中的位置。

JFrame类和Panel类的默认布局器分别是什么?

JFrame类: BorderLayout

BorderLayout将容器划分成East、West、South、North、Center五个区域,向容器中加入每个组件都要指明其所在区域。
Dialog也是该布局。

Panel类: FlowLayout

FlowLayout将容器中的组件按照加入的先后顺序从左向右排列,如果一行排满则转向下一行继续,每行均采用居对齐。

请说明FlowLayout布局方式的特点?

FlowLayout将容器中的组件按照加入的先后顺序从左向右排列,如果一行排满则转向下一行继续,每一行的组件均采用居对齐,组件之间的默认水平和垂直间隙为5个像素。

在Java中,什么是事件?简述处理事件的机制。

Java中的事件(ActionEvent)是人机交互中的事件源所产生的交互内容,是程序发生了某些事情的信号。事件表示发生了什么事,外部的用户动作和内部的用户动作都能触发事件,内部用户动作比如用户在界面上的一个操作:移动鼠标、点击按钮和敲击键盘等等,内部用户动作则有定时器等等。在Java中当一个事件发生的时候,该事件用一个事件对象表示,每一个事件对象都有其对应的事件类。查阅JDK手册可以看到,Java事件类定义在java.awt.event包中,一般继承自java.util.EventObject类,其封装了事件源对象,以及事件的相关信息。

Java事件处理机制主要由事件源、事件对象、事件监视器三个部分来完成。首先,用一个实现了监视器接口的类生成事件监视器的实例,将事件监视器注册到事件源上。

然后,当触发了事件源上的事件时,事件源生成事件对象并将其作为参数发送给注册的事件监听器。

最后,事件监视器做出响应,根据事件对象中的信息调用相应的方法处理事件。

4xGAsg.png