我有一个扩展JFrame
的类,其中包含JMenuBar
和一些组件,其中最内层显示Applet
。当小程序加载并点击菜单栏上的其中一个菜单时,我发现菜单的下拉部分隐藏在小程序下面。
这是一张图片来说明这一点:
我怀疑发生这种情况的原因是因为我将重量级Applet
组件与轻量级其他组件混合在一起。我已经调查了这一点,似乎从我访问过的资源中,答案汇聚到:不要这样做或验证顶级容器。
我试过后者但没有用。这是我的代码(它在多线程环境中):
public void add(final Applet applet) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
centerCenterPanel.add(applet);
centerCenterPanel.revalidate();
SwingUtilities.getWindowAncestor(applet).validate();
}
});
}
不执行它不是一个选项,因为我加载的applet不是我的,因为我没有创建它,我只是加载它。底线是我不能使applet成为JApplet
或其他组件。但是,包装它可能是一种可能性。
有没有人就如何解决这个重叠提出任何建议?
答案 0 :(得分:0)
我找到了解决问题的方法。这两条线就可以了。
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false);