如何获得JPopupMenu的维度?

MC *_*ror 5 java swing dimension jpopupmenu

我有TrayIcon一个JPopupMenu连接到它.当我JMenuItem在弹出菜单中添加一个时,我想知道这个弹出菜单的尺寸.但是不计算维度:getBounds(),getSize()并且getVisibleRect()所有维度都返回零.

正如您在图像中看到的,弹出菜单肯定一个维度.
托盘弹出菜单
现在我如何获得弹出菜单的尺寸?

cam*_*ckr 5

组件在实现之前没有大小.这基本上意味着它们被显示(或打包).

为什么这很重要,系统会定位菜单?如果我们知道要求,也许我们可以提供更好的解决方案.

如果你想要一个hack,那么尝试使用PopupMenuListener并处理popupMenuWillBecomeVisible()事件.然后,您需要将代码包装在SwingUtilities.invokeLater()中,以便在菜单可见后执行代码.