Java中的自定义JMenuItems

Mic*_*ael 11 java swing jmenuitem jmenu

是否可以创建JMenuItem包含按钮的自定义?例如,是否可以使用JMenuITem与此类似的项创建:

Google Chrome自定义和控制菜单的屏幕截图,其中包含编辑菜单项

+----------------------------------------+
| JMenuItem [ Button | Button | Button ] |
+----------------------------------------+
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 4

我怀疑是否有一种简单的方法可以做到这一点。你可以这样做:

JMenuItem item = new JMenuItem("Edit                       ");
item.setLayout( new FlowLayout(FlowLayout.RIGHT, 5, 0) );
JButton copy = new JButton("Copy");
copy.setMargin(new Insets(0, 2, 0, 2) );
item.add( copy );
menu.add( item );
Run Code Online (Sandbox Code Playgroud)

但存在几个问题:

a) 单击按钮时菜单不会关闭。因此需要将该代码添加到您的 ActionListener 中

b) 菜单项不响应左/右箭头等按键事件,因此无法使用键盘将焦点放在按钮上。这将涉及菜单项的 UI 更改,但我不知道从哪里开始。

我只会使用标准的 UI 设计来创建子菜单。