Java 2D渲染之中的被调整大小问题

CodeingBoy 8月 06, 2016

最近在做一个 Java 2D 小游戏的渲染,发现有时候调整了画布的位置却又被重置为 0。

于是就会出现设置了画布(在内容面板上的)位置,但是却没有设置位置的现象。
trouble

在一些位置对相关变量进行了记录输出,发现最初的设置位置其实是生效了的,只是不知道被谁重新设置为了 0。
output

对画布的位置变量进行了跟踪。当修改画布位置为 0,0 时,得到如下调用栈:
calling stack

最后在调用栈之中的 layout 函数中发现了元凶——布局管理器。因为管理器的存在会对面板内的组件进行重排。
source

解决办法:setLayout(null),不设置布局管理器就可以了。

本文采用 CC BY-NC-SA 3.0 协议进行许可,在您遵循此协议的情况下,可以自由共享与演绎本文章。
本文链接:https://blog.codeingboy.me/java-2d-canvas-location-problem/

发表评论

电子邮件地址不会被公开。 必填项已用*标注