1

我想创建一个弹出菜单,其中包含一些“大”(特殊)项目。

这些“大”项目应该以某种方式表现得像子菜单,但它们是大面板(带有按钮、标签、组合框等)。当鼠标悬停(或按下)相应的菜单项时,这些面板都应该出现,并且它们都应该出现在弹出菜单旁边的同一屏幕区域中,在最上面的项目条目下方,不与其对应的项目对齐) . 只要弹出窗口可见,最后选择的它们就可以保持可见。

基本上,我相信这感觉就像 (A) 在弹出菜单旁边放置一个JLayeredPane,并根据一些鼠标事件切换图层。可能这需要使用 JPopupMenu 中只有一个条目的单个大型 JPanel 来伪造整个弹出菜单(即所有“普通”菜单项实际上都必须是按钮。)

所以,另一方面(B),使用标准的摆动子菜单项似乎更聪明,将大面板添加为子菜单项,然后将所有子菜单项强制到相同的位置和大小。不过,我不确定这是否可行,以及是否会出现诸如菜单会在用户单击其中一个大面板内的组合框时立即隐藏的问题。

你会推荐选择 (A) 或 (B) - 还是 (C) ?

做这些事情的任何经验/已知的陷阱?

亲切的问候,菲利普

4

1 回答 1

0

我没有 A 或 B 的经验,但在两者之间我会先尝试 B。

另一个可能更好的选择是使用 JDialog。设置为不修饰并在失去焦点时隐藏它。(这可能只是做 A 的一种更简单的方法)。

于 2011-01-23T14:57:51.710 回答