在 Java 中实现一个简单的画图板,你可以使用 Swing 组件和 Java 2D 图形库。
下面土嘎嘎小编分享一个基本示例:
〓〓java代码如下:〓〓
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DrawingBoard extends JFrame {
private int lastX, lastY; // 记录上一个点的坐标
public DrawingBoard() {
setTitle("Java Drawing Board");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel canvas = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(2)); // 设置绘制线条的粗细
// 绘制线段
g2.drawLine(0, 0, lastX, lastY);
}
};
canvas.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
lastX = e.getX();
lastY = e.getY();
}
});
canvas.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
Graphics g = canvas.getGraphics();
g.drawLine(lastX, lastY, e.getX(), e.getY());
lastX = e.getX();
lastY = e.getY();
}
});
getContentPane().add(canvas);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
DrawingBoard board = new DrawingBoard();
board.setVisible(true);
});
}
}
上面给出的示例中,创建了一个继承自 JFrame 的 DrawingBoard 类,用于展示画图板窗口。窗口的内容面板是一个 JPanel ,用于绘制图形。
在 paintComponent 方法中,使用 Graphics2D 对象绘制线段。 mousePressed 方法记录鼠标点击位置的坐标,并在 mouseDragged 方法中绘制从上一个点到当前点的线段。
通过调用 getGraphics() 方法获取画布的 Graphics 对象,并使用 drawLine 方法绘制线段。最后更新 lastX 和 lastY 值以记录最新的点的坐标。
在 main 方法中创建 DrawingBoard 实例并显示出来。
土嘎嘎技术网友情提示:这只是一个简单的示例,仅实现了基本的画线功能。你可以根据需要扩展和定制画图板,例如添加其他图形、颜色选择、保存绘图等功能。