私のアプリケーションレイアウトは次のようなものです:カスタムJPanelを含む標準JPanelを含むカスタムJFrame(GUIの作成を処理するだけ)
MinimapPanel と呼ばれるカスタム JPanel 内で、ペイント メソッドを変更しました。
//in a constructor:
scaledTransform = new AffineTransform(); = new AffineTransform();
scaledTransform = new AffineTransform();
scaledTransform.scale(scaleAmount, scaleAmount);
//...
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setTransform(scaledTransform);
mapDrawer.paintMinimap(g, seatMap, miniViewHandler);//it just calls a bunch of fillRect
if (viewRect != null) {
g.setColor(new Color(255, 0, 0));
int x = viewRect.x;
int y = viewRect.y;
g.drawRect(x, y, Math.abs(viewRect.width), Math.abs(viewRect.height));
}
g2d.setTransform(plainTransform);
}
trasform を適用しない場合、またはスケーリングが 1.0 (なし) の場合はすべて正常に動作しますが、スケーリングすると、JFrame が再描画されるたびに MinimapPanel が空白のままになります。
私が間違っている可能性があることについてのアイデアはありますか?