java jpanel 画图_java – 使用Graphics的JPanel自定义绘图

不要通过在JPanel等组件上调用getGraphics来获取Graphics对象,因为获得的Graphics对象不会在下一次重绘时保留(这可能是您的问题的根源).

相反,考虑在BufferedImage中完成所有绘图,然后就可以使用getGraphics()来实现内容.如果这样做,请不要忘记在完成绘图时丢弃Graphics对象.

例如.,

import java.awt.*;

import java.awt.event.*;

import java.awt.image.BufferedImage;

import javax.swing.JPanel;

@SuppressWarnings("serial")

public class MyPaint extends JPanel {

public static final int IMG_WIDTH = 400;

public static final int IMG_HEIGHT = IMG_WIDTH;

private BufferedImage image = new BufferedImage(IMG_WIDTH, IMG_HEIGHT,

BufferedImage.TYPE_INT_ARGB);

public MyPaint() {

MyMouseAdapter myMouseAdapter = new MyMouseAdapter();

addMouseListener(myMouseAdapter);

addMouseMotionListener(myMouseAdapter);

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

if (image != null) {

g.drawImage(image, 0, 0, null);

}

}

@Override

public Dimension getPreferredSize() {

return new Dimension(IMG_WIDTH, IMG_HEIGHT);

}

public void clearScreen() {

Graphics g = image.getGraphics();

g.setColor(Color.black);

g.fillRect(0, 0, image.getWidth(), image.getHeight());

g.dispose();

repaint();

}

private class MyMouseAdapter extends MouseAdapter {

// code to draw on the buffered image.

// Don't forget to call repaint() on the "this" JPanel

}

}

好的,我可以为您介绍一下Java实现的简单画图板示例,同时提供详细的解释。 首先,我们需要创建一个Java项目,并添加一个GUI界面,用于显示我们的画图板。在这个界面上,我们可以添加一些按钮和工具栏,用于选择不同的画笔、颜色、线宽等属性,以及实现撤销、清空和保存等功能。 接下来,我们需要实现绘图功能。为此,我们可以创建一个自定义绘图面板,继承自JPanel类,并重写其paintComponent()方法。在这个方法中,我们可以使用JavaGraphics2D类来实现各种绘图操作,例如画线、画矩形、画圆等。 具体的实现过程如下: 1. 创建一个继承自JPanel类的自定义面板,命名为DrawingPanel。 2. 在DrawingPanel中添加一些成员变量,用于存储当前选择的画笔、颜色、线宽等属性,以及保存绘图操作的历史记录。 3. 重写DrawingPanel的paintComponent()方法,在其中使用Graphics2D类实现绘图操作。具体操作可以根据用户选择的不同画笔类型来决定,例如: - 如果选择了画线工具,则使用graphics.drawLine()方法画线段。 - 如果选择了画矩形工具,则使用graphics.drawRect()方法画矩形。 - 如果选择了画圆工具,则使用graphics.drawOval()方法画圆形。 4. 在DrawingPanel中添加一些方法,用于实现撤销、清空和保存等功能。例如: - addOperation()方法用于将当前的绘图操作加入历史记录中。 - undo()方法用于撤销上一步绘图操作。 - clear()方法用于清空所有绘图操作。 - save()方法用于将当前绘图保存为图片文件。 5. 在GUI界面中添加一个DrawingPanel实例,用于显示绘图结果。 6. 在GUI界面中添加一些按钮和工具栏,用于选择不同的画笔、颜色、线宽等属性,以及实现撤销、清空和保存等功能。 以上就是Java实现的简单画图板示例的大致步骤。您可以根据自己的需求进行修改和扩展。希望这些内容能够对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值