У меня быстрый вопрос. Как получить изображение, сгенерированное JComponent.paint или paintComponent?
У меня есть JComponent, который я использую в качестве «рабочего пространства» и где я переписал метод paintComponent своим собственным. Дело в том, что в моем рабочем пространстве JComponent также есть дочерние элементы, у которых есть свои собственные методы paintComponent.
Поэтому, когда Swing отображает мой компонент рабочей области, он отображает графику рабочей области, а затем ее дочерние элементы.
Однако я хочу получить изображение, которое генерирует мой компонент рабочего пространства (включая графику рабочего пространства и детскую графику).
Как мне это сделать?
Я пытался вызвать метод paintComponent / paint самостоятельно, используя мою собственную Графику, но я только что возвратил черное изображение. Вот что я попробовал;
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;
}
Любые мысли или комментарии приветствуются! :)