meine Anwendung Layout ist so etwas wie: benutzerdefinierte JFrame (die nur die Erstellung der gui Griffe), die eine Standard-JPanel enthält, die eine benutzerdefinierte enthält JPanelJPanel malt nicht, wenn sie mit Affine Transform Skalierung
Innerhalb der benutzerdefinierten JPanel , die MinimapPanel genannt wird, änderte ich die Farbe Methode:
//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);
}
Alles funktioniert gut, wenn ich die Transform nicht anwendbar ist, oder wenn die Skalierung von 1,0 (keine), aber wenn ich zu skalieren, jedes Mal wenn die JFrame repaints, das MinimapPanel bleibt leer.
Irgendwelche Ideen, was ich falsch machen könnte?
Für eine bessere Hilfe, eine [SSCCE] (http://sscce.org/) abgeben. –
Danke für den Kopf! – Enoon