本资源主要介绍了Java AWT(Abstract Window Toolkit)中的绘图与图形界面编程技术,包括基本概念、核心组件和容器的使用。AWT是Java提供的一套用于创建和操作窗口图形界面的工具包,其在Component类中定义了与绘图相关的三个方法:paint(), update(), 和 repaint(),它们用于定制组件的外观并实现图形的动态更新。
1. 绘图方法:
- `paint(Graphics g)`:这是组件最基本的绘图方法,当组件大小改变或者位置变化时,会自动调用此方法重新绘制其内容。
- `update(Graphics g)`:当组件内容发生变化时,调用此方法刷新组件,通常由`repaint()`触发。
- `repaint()`:这个方法请求系统重新绘制组件,系统会根据需要选择合适的时间来调用`paint()`方法。
2. Graphics类的方法:
- `drawLine(int x1, int y1, int x2, int y2)`:用于绘制一条直线。
- `drawString(String string, int left, int bottom)`:在指定位置绘制文本。
- `drawImage(Image image, int left, int top, ImageObserver observer)`:将图片绘制到指定位置。
- `drawRect(int left, int top, int width, int height)`:绘制一个矩形区域。
- `drawOval(int x, int y, int width, int height)`:绘制一个椭圆形。
- `fillRect(int left, int top, int width, int height)`:填充一个矩形区域。
- `fillOval(int x, int y, int width, int height)`:填充一个椭圆形。
3. AWT容器:
- 容器(Container)是组织和管理组件的基本结构,包括Window和Panel两种类型。
- Frame:是Window的子类,可以独立存在,提供了一个带有标题的窗口,通过`Frame(String title)`构造函数创建,并且可以通过`add(Component)`添加其他组件,初始时不可见。
- Panel:不能单独存在,只能作为其他容器(如Frame)的内部组件,提供默认布局和自定义布局的灵活性。
4. 布局管理器:
- Java的窗口默认使用BorderLayout布局,这是一种基本的五边布局,可以安排组件在窗口的五个区域(北、东、南、西、中心)。
- 使用`setLayout(null)`可以取消布局管理器,手动控制组件的位置和大小,但这会导致代码更加复杂,不推荐在实际开发中滥用。
- 如果需要使用默认布局,开发者可以根据需求调整组件的相对位置,如调整窗体大小或组件的显示位置。
学习这些内容时,可以参考《Java语言与面向对象程序设计》的第7章和第8章,特别是8.3节的内容。通过实例代码,如`FrameShower.java`和`MyFrame.java`,可以更好地理解和应用这些概念。理解并掌握AWT绘图和容器管理是进行Java图形界面开发的基础,对于构建复杂交互式用户界面至关重要。