java多级滚动弹出菜单

时间:2016-05-09 12:51:01

标签: java swing scroll menu jpopupmenu

我有这个要求,我需要显示可以降低多个级别的菜单。现在在每个级别,菜单中可以有许多对象,这意味着我必须在菜单中显示滚动条。

1
 1->1
 1->2
2

我能够编写一个自定义类'JScrollPopupMenu',它将一个滚动条引入菜单。现在我只能控制第一个弹出菜单,但是对于下一级菜单,我无法控制正在创建的弹出菜单 例如:

//this is the first pop-up menu
JPopupMenu scrollablePopupMenu = new JScrollPopupMenu();
JMenu menu = new JMenu("1");
scrollablePopupMenu.add(menu);
menu = new JMenu("2");
scrollablePopupMenu.add(menu);
//this is the child menu for "1", I have no control over   //childMenu.getPopupMenu(), this is created internally inside JMenu
JMenu childMenu = new JMenu("1->1");
menu.add(childMenu);
childMenu = new JMenu("1->2");
menu.add(childMenu);

在上面的示例中,第一级弹出窗口有一个滚动条,但下一级弹出窗口没有。有什么方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

如果你有很多菜单项,你应该重新考虑你的GUI设计。

1)可用性中的拇指规则表示您不应在组中显示超过8个选项。

2)仅仅因为Windows在“开始”菜单中有一个可滚动的菜单,并不是一个很好的例子。事实上,微软已经把它留给了搜索,只是因为一个巨大的可滚动菜单不是用户友好的。