如何防止底层分隔线戳到我的菜单!

时间:2011-07-06 18:41:16

标签: java swing

我有一个由JFrame组成的Swing表单,其中包含JMenuBar和JSplitPane(进一步细分为可调整大小的JPanels)。问题是,当我选择其中一个下拉菜单时,如果JPanels的其中一个分隔符位于菜单下,它实际上会在菜单的TOP上呈现!好像分隔符有焦点而不是菜单。

我和另一个(我做的类似项目)有同样的问题,从未找到修复,只是放弃使用菜单栏(转到基于选项卡/按键的系统)。我真的想让菜单在这个当前的项目中工作,希望没有分隔线在菜单上戳,并让我烦恼。 : - )

想法?

2 个答案:

答案 0 :(得分:2)

确保您使用的是轻量级Swing组件,而不是重量级AWT组件。 (即:Panel的JPanel instad,JMenuBar而不是MenuBar等)

组合重量级和轻量级组件通常会导致您遇到的问题。

答案 1 :(得分:0)

好的,我明白了,这确实是一个有趣的案例!

我最终发现部分表单中的一些代码是注入一些自定义组件。深入研究这些自定义组件会发现它们正在绘制到图形空间中(通过fill3DRect)...这样绘制的项目总是最终显示/“在顶部”......

现在,试图弄清楚如何让它们在Swing世界中发挥作用......: - )