画像で90度回転する可能性のあるJPanelをペイントして再ペイントしたいと思います。最初の塗装は問題を引き起こしません。パネルをrepaint()しようとすると、すぐには実行されませんが、2回目のrepaint()を待ちます。
私の2番目の問題は、以下のコードで説明されているようにパネルを垂直にすると、まったく再描画されないことです。少なくとも赤、黄、緑の画像は見えませんが、「明るい」画像は残っています。
お時間を割いていただきありがとうございます。
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
if(vertical){
g2d.translate(this.getWidth() / 2, this.getHeight() / 2);
g2d.rotate(-Math.PI / 2);
g2d.translate(-img_light.getWidth(null) / 2, -img_light.getHeight(null) / 2);
g2d.drawImage(img_light, 0, 0, this);
if(showRed){
g2d.translate(-img_red.getWidth(null) / 2, -img_red.getHeight(null) / 2);
g2d.drawImage(img_red, 0, 0, null);
}
if(showYellow){
g2d.translate(-img_yellow.getWidth(null) / 2, -img_yellow.getHeight(null) / 2);
g2d.drawImage(img_yellow, 0, 0, null);
}
if(showGreen){
g2d.translate(-img_green.getWidth(null) / 2, -img_green.getHeight(null) / 2);
g2d.drawImage(img_green, 0, 0, null);
}
}else{
g2d.drawImage(img_light, 0, 0, this);
if(showRed){
g2d.drawImage(img_red, 0, 0, null);
}
if(showYellow){
g2d.drawImage(img_yellow, 0, 0, null);
}
if(showGreen){
g2d.drawImage(img_green, 0, 0, null);
}
}
}