java实现涂鸦板
时间: 2023-08-16 20:08:35 浏览: 50
Java 实现涂鸦板可以使用 Java Swing 组件库来创建 GUI 应用程序,并使用 Java2D API 来绘制图形。以下是一个简单的示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DoodleBoard extends JFrame implements MouseMotionListener {
private int lastX, lastY;
private Color color;
private JPanel canvas;
public DoodleBoard() {
super("Doodle Board");
// 设置窗口大小和关闭行为
setSize(600, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建画布面板
canvas = new JPanel();
canvas.setBackground(Color.WHITE);
canvas.addMouseMotionListener(this);
// 创建工具面板
JPanel tools = new JPanel();
tools.setLayout(new GridLayout(1, 0));
JButton clearBtn = new JButton("Clear");
clearBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
clearCanvas();
}
});
JColorChooser colorChooser = new JColorChooser();
colorChooser.getSelectionModel().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent event) {
color = colorChooser.getColor();
}
});
tools.add(clearBtn);
tools.add(colorChooser);
// 把画布和工具面板添加到主窗口中
add(canvas, BorderLayout.CENTER);
add(tools, BorderLayout.SOUTH);
// 显示主窗口
setVisible(true);
}
// 清空画布
private void clearCanvas() {
Graphics g = canvas.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
}
// 画线
private void drawLine(int x1, int y1, int x2, int y2) {
Graphics g = canvas.getGraphics();
g.setColor(color);
g.drawLine(x1, y1, x2, y2);
}
// MouseMotionListener 接口的实现
public void mouseDragged(MouseEvent event) {
int x = event.getX();
int y = event.getY();
drawLine(lastX, lastY, x, y);
lastX = x;
lastY = y;
}
public void mouseMoved(MouseEvent event) {
lastX = event.getX();
lastY = event.getY();
}
public static void main(String[] args) {
new DoodleBoard();
}
}
```
该代码创建了一个包含一个画布和一些工具的窗口,可以在画布上使用鼠标涂鸦,也可以使用清空按钮清空画布,使用颜色选择器选择画笔颜色。注意,该代码只是一个简单示例,还可以添加更多功能和优化,例如保存画布内容到文件或使用更高级的绘图工具。