java画笔橡皮,用java描述的图形代码
在Java编程中,实现一个画笔橡皮功能通常涉及到图形用户界面(GUI)的构建和事件监听。本项目中,我们使用了Java Swing库来创建窗口和组件,通过监听鼠标的左键和右键点击以及拖动事件,实现画点和擦除点的功能。 项目由两个主要类构成:`G5` 和 `PointPanel`。`G5` 是主类,它创建了一个`JFrame`窗口,并将 `PointPanel` 添加到窗口内容面板中。`PointPanel` 类继承自 `JPanel`,并实现了图形绘制和事件处理。 `PointPanel` 类有两个重要的成员变量:`ArrayList<Point> pointList` 和 `pointList2`。这两个列表分别用来存储鼠标左键点击的点(画笔痕迹)和右键点击的点(橡皮擦痕迹)。同时,`count` 变量用于记录点的数量,而 `sign` 字符串则用于标记当前是左键还是右键操作。 在 `PointPanel` 的构造函数中,我们创建了两个监听器实例,`DotsListener` 类实现了 `MouseListener` 和 `MouseMotionListener` 接口。`addMouseListener()` 和 `addMouseMotionListener()` 方法用于将监听器添加到组件上,使得组件可以响应鼠标事件。 `paintComponent()` 方法是重写自 `JPanel` 的方法,用于在组件上绘制图形。这里,我们遍历 `pointList` 和 `pointList2`,使用 `Graphics` 对象的 `fillOval()` 方法画出每个点,黑色表示画笔点,白色表示橡皮擦点。同时,我们在画布上显示当前点的数量。 `DotsListener` 类的 `mousePressed()` 方法检查鼠标点击事件,如果是右键,则将点添加到 `pointList2`,否则添加到 `pointList`。`mouseDragged()` 方法则根据 `sign` 的值来决定是在画笔点列表还是橡皮擦点列表中添加点。 通过这个项目,我们可以学习到以下几点Java GUI编程的知识: 1. **事件监听**:Java Swing 使用事件监听机制来处理用户交互。`MouseListener` 和 `MouseMotionListener` 是两个重要的监听器接口,分别用于处理鼠标按钮点击和鼠标移动事件。 2. **ArrayList**:`ArrayList` 是Java集合框架中的动态数组,用于存储可变数量的对象。在这里,它用于保存鼠标点击的点坐标。 3. **Graphics对象**:`Graphics` 类用于在组件上进行绘图,`fillOval()` 方法用于填充椭圆,模拟画点或擦除点的效果。 4. **SwingUtilities.isRightMouseButton()**:这个方法用于检查鼠标事件是否为右键点击。 5. **重写paintComponent()**:在 Swing 中,我们通常重写 `paintComponent()` 方法来进行定制的图形绘制,确保图形在组件上正确显示。 6. **JFrame 和 JPanel**:`JFrame` 是窗口的基础,`JPanel` 是用于添加组件和绘制图形的容器。 通过以上分析,我们可以了解到如何利用Java Swing库创建一个简单的画图应用,实现画笔和橡皮擦功能,以及如何处理鼠标事件来控制图形的绘制。这为理解Java GUI编程的基本原理和实践提供了良好的基础。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助