我正在创建一个海洋地图的Java应用程序,其中我使用JFrame作为画布来绘制海洋本身。我有一个图形用户界面在这上面作为一个JPanel。我最近在JPanel中添加了一个具有不同功能的JMenuBar。然而,我现在注意到,新添加的MenuBar‘将应用程序’推低了大约10-15个像素-当我缩放/平移地图时,地图会出现一些奇怪的‘跳跃’-可能是试图重新调整。
有人知道为什么会这样吗?
发布于 2015-05-12 03:26:46
十之八九,您需要查看插图。
自从我直接使用Swing以来已经有一段时间了,但是所有容器都有一个名为getInsets()的方法。这将返回一个Insets对象,描述容器边框的大小--包括您的JFrame。JMenuBars倾向于稍微调整这些插入,给您留下两个主要选择。
我建议您将绘图转换为放置在JFrame中的JPanel;这样您就不必担心JMenuBar。相反,使用面板作为画布。
另一种选择是在绘制时轮询插图,并相应地更改您的坐标;但如果您仍然可以避免这种情况,我建议您不要这样做,因为它与我所有的模块化编程本能都背道而驰。
https://stackoverflow.com/questions/30174266
复制相似问题