Java:带有附加面板的大弹出菜单

时间:2011-01-23 10:23:59

标签: java swing popupmenu

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

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

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

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

你会建议去(A)或(B) - 或者(C)吗?

有任何经验/已知的陷阱吗?

亲切的问候, 菲利普

1 个答案:

答案 0 :(得分:0)

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

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