java-面板背景图片截图
作者:互联网
我正在尝试在JPanel上绘制图像(使用鼠标),但是这是可行的,但是当我尝试拍摄面板的屏幕截图并生成图像时,我只能看到图像背景而无需绘制鼠标.
这是我生成后台Panel.java的代码
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(this.createImage("/imagenes/cuerpoHumano.png").getImage(), 0, 0, null);
}
这是我的用铅笔在图像上绘制的代码:Panel.java
private void formMouseDragged(java.awt.event.MouseEvent evt) {
x = evt.getX();
y = evt.getY();
this.getGraphics().setColor(Color.RED);
this.getGraphics().fillOval(x, y, 4, 4);
}
这是生成屏幕截图的代码
Dimension size = panel.getSize();
BufferedImage image = (BufferedImage) panel.createImage(size.width, size.height);
Graphics g = image.getGraphics();
panel.paint(g);
g.dispose();
try {
String fileName = UUID.randomUUID().toString().substring(0, 18);
ImageIO.write(image, "jpg", new File(path, fileName + ".jpg"));
} catch (IOException e) {
e.printStackTrace();
}
解决方法:
截屏时,将调用paintComponent()方法.这意味着它只会为您绘制图像.您必须将鼠标移动存储在某些模型中,并在paintComponent()方法中绘制模型的内容.通过在鼠标移动期间在面板上调用repaint()来触发此方法.
标签:paintcomponent,graphics,swing,jpanel,java 来源: https://codeday.me/bug/20191127/2076499.html