Java图形界面编程:事件处理与布局管理

需积分: 9 5 下载量 198 浏览量 更新于2024-07-13 收藏 612KB PPT 举报
在Java图形界面编程中,事件处理是构建用户交互式应用程序的关键部分。事件处理涉及三个主要组件:事件源、事件和监听者。事件源是那些可以触发事件的对象,比如按钮、文本框等。每种事件都有其特定的监听者接口,如ActionListener用于处理动作事件。当事件源(如按钮被点击)触发事件时,已注册的监听者会接收到这个事件并执行相应的处理方法。这种设计模式被称为“委托模型”,因为它将事件处理的责任委托给了监听者。 在Java AWT(Abstract Window Toolkit)库中,容器(Container)是放置其他组件的基础。容器分为两种类型:Window和Panel。Window是顶级容器,它可以直接显示在屏幕上,不依赖于任何其他窗口。Frame是Window的一个子类,通常用于创建应用程序的主要窗口。例如,`FrameShower.java`中的代码展示了如何创建一个包含按钮的Frame,并使其可见。 ```java Frame f = new Frame("hello"); f.add(new Button("PressMe")); f.setSize(100,100); f.setVisible(true); ``` Panel是另一种容器,但它是内嵌式的,不能单独存在,必须放入其他容器(如Frame)中。在`MyFrame.java`的例子中,创建了一个Panel,并添加了一个按钮,设置了背景颜色,然后将Panel添加到自定义的Frame实例中。 ```java Panel panel = new Panel(); Button button = new Button("pressme"); Panel(panel); panel.add(button); panel.setBackground(Color.yellow); ``` 容器的布局管理是组织和控制其内部组件位置的重要机制。在Java AWT中,布局管理器决定了组件在容器内的排列方式。例如,如果不设置布局管理器,可以使用`setLayout(null)`来禁用它,允许绝对定位组件。然而,这需要手动计算每个组件的位置,通常不推荐。默认情况下,Window、Frame和Dialog使用BorderLayout,这是一种将容器划分为五个区域(北、南、东、西、中心)的布局。 例如,如果希望在Frame的中央位置放置一个组件,可以这样写: ```java f.add(component, BorderLayout.CENTER); ``` 布局管理器简化了界面设计,使得组件可以根据窗口大小的变化自动调整位置和大小。Java AWT还提供了其他的布局管理器,如FlowLayout、GridLayout和CardLayout,分别用于线性布局、网格布局和卡片布局,以满足不同布局需求。 Java图形界面编程中的事件处理、容器和布局管理器是构建用户界面的基本元素。理解这些概念和它们的工作原理对于创建功能丰富的、响应用户操作的Java应用程序至关重要。