我正在创建一个海图的Java应用程序,我在其中使用JFrame作为Canvas来绘制海洋本身。我有一个GUI作为JPanel。我最近在JPanel中添加了一个具有不同功能的JMenuBar。但是,我现在注意到新添加的MenuBar推送应用程序'向下~10-15像素 - 当我缩放/平移地图时,地图会产生一些奇怪的跳跃' - 可能试图重新调整。
有谁知道为什么会这样?
答案 0 :(得分:1)
十分之九,你需要看看插图。
我直接使用Swing已经有一段时间了,但是所有容器都有一个名为getInsets()的方法。这将返回一个Insets对象,描述容器边框的大小 - 包括您的JFrame。 JMenuBars倾向于稍微推动那些插入,留下两个主要选项。
我建议您将绘图放到放在JFrame中的JPanel;这样你就不用担心JMenuBar了。将面板用作画布。
另一个选项是在绘图时轮询插图,并相应地改变坐标;但是如果你仍然可以避免它,我必须建议不要这样做,因为它几乎与我所有的模块化编程本能相反。