【发布时间】:2012-04-11 13:44:33
【问题描述】:
我的应用程序布局类似于: 自定义 JFrame(仅处理 gui 的创建),其中包含一个标准 JPanel,其中包含一个自定义 JPanel
在自定义的 JPanel 内部,称为 MinimapPanel,我更改了绘制方法:
//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 都会保持空白。
关于我可能做错的任何想法?
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖SSCCE。
-
感谢您的提醒!
标签: java swing scaling paint affinetransform