2. 涂鸦板是一个具有趣味性的小程序,它的实现原理是通过鼠标事件,控制鼠标移动结合画图功能实现。鼠标拖拽才开始绘制,松开鼠标则停止绘制。 请用Java图形界面的知识,编写以上软件。
时间: 2023-12-31 09:05:48 浏览: 27
好的,涂鸦板的实现需要用到Java图形界面的知识,下面是一个简单的实现示例:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DoodleBoard extends JFrame implements MouseListener, MouseMotionListener {
private JPanel panel;
private boolean isDrawing = false;
private int lastX, lastY;
public DoodleBoard() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.addMouseListener(this);
panel.addMouseMotionListener(this);
add(panel);
setVisible(true);
}
@Override
public void mousePressed(MouseEvent e) {
isDrawing = true;
lastX = e.getX();
lastY = e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
isDrawing = false;
}
@Override
public void mouseDragged(MouseEvent e) {
if (isDrawing) {
Graphics g = panel.getGraphics();
g.drawLine(lastX, lastY, e.getX(), e.getY());
lastX = e.getX();
lastY = e.getY();
}
}
// 其他 MouseListener 和 MouseMotionListener 方法的实现
// ...
public static void main(String[] args) {
new DoodleBoard();
}
}
```
在上面的代码中,我们创建了一个 `JFrame` 窗口,将一个 `JPanel` 添加到其中,并为 `JPanel` 注册了 `MouseListener` 和 `MouseMotionListener` 监听器。在鼠标按下时,我们记录下鼠标的位置,并将 `isDrawing` 标记为 `true`,表示开始绘制。在鼠标拖拽时,如果 `isDrawing` 为 `true`,则获取 `JPanel` 的 `Graphics` 对象,绘制直线,并将当前坐标记录为上一个坐标。在鼠标松开时,我们将 `isDrawing` 标记为 `false`,表示停止绘制。
当然,这只是一个简单的实现示例,实际上,我们可以通过更多的事件监听器、更灵活的绘制方式、更多的颜色和线条样式等,来丰富和扩展涂鸦板的功能。