我试图在JAVA中制作某种Paint程序。使用图形类,我可以设置绘画空间并绘制它。我希望这个空间是一个图像而不是一个白色的空间,尽管我付出了很多努力,但我无法做到。如果我成功了,我就无法画出图像。
带图片的非工作代码:https://pastebin.com/zNnWGjgS
Stackoverflow forces me to put some code here but it's too long
没有图片的工作代码:https://pastebin.com/r1nFHY9c
Stackoverflow forces me to put some code here but it's too long
请帮帮我们。谢谢。
答案 0 :(得分:0)
快速浏览一下paintComponent我可以看出你很困惑。您要做的就是将图像的图形加载到Graphics2D g2
并在其上绘制线条。在您的非工作示例中:
使用createImage(getSize().width, getSize().height);
您将图形g2设置为空图像图形
您加载image
并放弃先前的初始化,将g2留空。
您绘制图像,而对g2图形进行了所有更改。
要修复错误,只需将paintComponent更改为:
@Override
protected void paintComponent(Graphics g) {
if (image == null) {
try {
image = ImageIO.read(new URL("https://i.imgur.com/mjxu50B.png"));
} catch (Exception e) {
e.printStackTrace();
}
g2 = (Graphics2D) image.getGraphics();
// enable antialiasing
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(Color.BLACK);
}
g.drawImage(image, 0, 0, null);
}
PS。在将来的帖子中,尝试仅发布非工作示例,并尽量保持简单。