Java 我如何防止下面的分隔符刺穿我的菜单!
我有一个Swing表单,由一个JFrame组成,其中包含一个JMenuBar和一个JSplitPane(进一步细分为可调整大小的JPanel)。问题是,当我选择一个下拉菜单时,如果JPanel的一个分隔符在菜单下,它实际上会在菜单的顶部渲染!好像分隔符有焦点而不是菜单 我在另一个项目中也遇到了同样的问题(我做过类似的项目),从未找到解决方案,只是放弃了使用菜单栏(转到基于制表符/按键的系统)。我真的很想让菜单在当前的项目中发挥作用,希望不会有分隔符刺穿菜单并打扰我。:-)Java 我如何防止下面的分隔符刺穿我的菜单!,java,swing,Java,Swing,我有一个Swing表单,由一个JFrame组成,其中包含一个JMenuBar和一个JSplitPane(进一步细分为可调整大小的JPanel)。问题是,当我选择一个下拉菜单时,如果JPanel的一个分隔符在菜单下,它实际上会在菜单的顶部渲染!好像分隔符有焦点而不是菜单 我在另一个项目中也遇到了同样的问题(我做过类似的项目),从未找到解决方案,只是放弃了使用菜单栏(转到基于制表符/按键的系统)。我真的很想让菜单在当前的项目中发挥作用,希望不会有分隔符刺穿菜单并打扰我。:-) 想法?确保您使用的是轻
想法?确保您使用的是轻量级Swing组件,而不是重量级AWT组件。(即:面板的JPanel安装,JMenuBar代替菜单栏等)
将重量级组件和轻量级组件结合起来通常会导致您看到的问题。好的,我知道了,这确实是一个有趣的案例 我最终发现表单中的一些代码正在注入一些自定义组件。深入研究这些自定义组件会发现它们正在图形空间中绘制(通过fill3DRect)。。。以这种方式绘制的项目最终总是显示/“在顶部”
现在,要想弄清楚如何让它们在摇摆世界中发挥作用…:-) 很高兴知道,但不幸的是我不是。。。都是Swing,没有AWT组件。你能发布一个简短的SSCE让它发生吗?+2这个问题听起来确实像是Swing和AWT混合的典型症状。要想说服我不这样做,需要一个SSCCE。