Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何防止下面的分隔符刺穿我的菜单!_Java_Swing - Fatal编程技术网

Java 我如何防止下面的分隔符刺穿我的菜单!

Java 我如何防止下面的分隔符刺穿我的菜单!,java,swing,Java,Swing,我有一个Swing表单,由一个JFrame组成,其中包含一个JMenuBar和一个JSplitPane(进一步细分为可调整大小的JPanel)。问题是,当我选择一个下拉菜单时,如果JPanel的一个分隔符在菜单下,它实际上会在菜单的顶部渲染!好像分隔符有焦点而不是菜单 我在另一个项目中也遇到了同样的问题(我做过类似的项目),从未找到解决方案,只是放弃了使用菜单栏(转到基于制表符/按键的系统)。我真的很想让菜单在当前的项目中发挥作用,希望不会有分隔符刺穿菜单并打扰我。:-) 想法?确保您使用的是轻

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

我在另一个项目中也遇到了同样的问题(我做过类似的项目),从未找到解决方案,只是放弃了使用菜单栏(转到基于制表符/按键的系统)。我真的很想让菜单在当前的项目中发挥作用,希望不会有分隔符刺穿菜单并打扰我。:-)


想法?

确保您使用的是轻量级Swing组件,而不是重量级AWT组件。(即:面板的JPanel安装,JMenuBar代替菜单栏等)


将重量级组件和轻量级组件结合起来通常会导致您看到的问题。

好的,我知道了,这确实是一个有趣的案例

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


现在,要想弄清楚如何让它们在摇摆世界中发挥作用…:-)

很高兴知道,但不幸的是我不是。。。都是Swing,没有AWT组件。你能发布一个简短的SSCE让它发生吗?+2这个问题听起来确实像是Swing和AWT混合的典型症状。要想说服我不这样做,需要一个SSCCE。