簡単な質問があります。JComponent.paint または paintComponent によって生成された画像を取得するにはどうすればよいですか?
「ワークスペース」として使用する JComponent があり、paintComponent メソッドを独自のものに上書きしました。問題は、私のワークスペース JComponent には、独自の paintComponent メソッドを持つ子もあるということです。
そのため、Swing がワークスペース コンポーネントをレンダリングすると、ワークスペース グラフィックスがレンダリングされ、次にその子がレンダリングされます。
ただし、ワークスペース コンポーネントが生成するイメージ (ワークスペース グラフィックスと子のグラフィックスを含む) を取得したいと考えています。
それ、どうやったら出来るの?
独自の Graphics を使用して paintComponent/paint-method を自分で呼び出そうとしましたが、黒い画像が返されました。これが私が試したことです。
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;
}
ご意見やご感想は大歓迎です!:)