编程语言
首页 > 编程语言> > java-面板背景图片截图

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