Tôi có câu hỏi nhanh. Làm cách nào để tôi nhận được hình ảnh được tạo bởi JComponent.paint hoặc paintComponent?Làm cách nào để có được hình ảnh sơn/paintComponent tạo ra?
Tôi có một JComponent mà tôi sử dụng làm 'không gian làm việc' và nơi tôi đã ghi đè phương pháp paintComponent cho chính mình. Vấn đề là JComponent không gian làm việc của tôi cũng có trẻ em có các phương thức paintComponent riêng của chúng.
Vì vậy, khi Swing hiển thị thành phần không gian làm việc của tôi, nó sẽ hiển thị đồ họa không gian làm việc và sau đó là childrens '.
Tuy nhiên, tôi muốn lấy hình ảnh thành phần không gian làm việc của tôi tạo (bao gồm đồ họa không gian làm việc và đồ họa của trẻ em).
Tôi làm như thế nào?
Tôi đã cố gọi chính phương thức paintComponent/paint bằng cách sử dụng đồ họa của riêng mình, nhưng tôi vừa trả về một hình ảnh đen. Đây là những gì tôi đã thử;
public void paintComponent(Graphics g) {
if (bufferedImage != null) {
g.drawImage(bufferedImage, 0, 0, this);
}
else {
g.setColor(Color.WHITE);
g.fillRect(0, 0, bufferedImage.getWidth(), bufferedImage.getHeight());
}
}
public BufferedImage getImage() {
BufferedImage hello = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics g = hello.getGraphics();
paintComponent(g);
return hello;
}
Bất kỳ suy nghĩ hoặc nhận xét nào đều được hoan nghênh! :)
Phương thức 'getImage' được gọi bởi người dùng, nghĩa là ứng dụng có nhiều thời gian. – user20298