mah*_*.cs
4
java
swing
java-3d
jpopupmenu
我有一个Java应用程序,它使用Java3D和JPopupMenus填充JMenuItems.当它作为常规应用程序运行时,一切正常--JPopupMenus和其他一切都按预期运行.但是,当我从应用程序中创建一个applet时,完全弹出Canvas3D的JPopupMenu没有按预期运行.JPopupMenu的行为如下:
- 当鼠标移过菜单项时,菜单项不会突出显示
- 箭头键不能用于在菜单项中移动
- 单击顶级JMenuItem完成操作并突出显示该项,但它不像在常规应用程序中那样处理JPopupMenu
- 单击包含子菜单的顶级JMenuItem不会执行任何操作
- 单击JPopupMenu外部并不像在常规应用程序中那样处理JPopupMenu
- 显示JPopupMenu后,在程序的swing部分顶部打开JPopupMenu可以使Canop3D上的JPopupMenu有规律和预期的行为,但第5点仍然适用
更多信息:
- 使用JPopupMenu.show()显示JPopupMenu与持有Canvas3D的JPanel相关
- 我在创建任何JPopupMenus之前调用JPopupMenu.setDefaultLightWeightPopupEnabled(false),但这行似乎没有什么区别.
- 我认为这可能是一个焦点问题,但JPopupMenu.requestFocusInWindow()不起作用
所以我的问题是:导致应用程序和applet之间的行为不同的原因是什么,以及如何在applet函数中创建JPopupMenu,就像在应用程序中一样?