如何在按钮上方显示JPopupMenu(如旧版Windows中的开始菜单)?

时间:2013-10-14 00:43:02

标签: java swing layout applet jpopupmenu

我独立发明了与How to create a JButton with a menu?中描述的相同的解决方案,用于在Swing小程序中创建弹出菜单。但是,popup.show()中指定的坐标是弹出菜单左上角的位置。我希望菜单的左下角与我按钮的左上角重合。这与Windows版本相对于“开始”按钮用于“开始”菜单的旧版本的布局相同。

我拥有的是:

JPopupMenu popup_menu;
JButton button;

public void actionPerformed(ActionEvent e)
{
    int menu_height = this.popup_menu.getHeight();
    this.popup_menu.show(this.button, 0, -menu_height);
}

问题是单击按钮的第一次时间,似乎menu_height未正确初始化,菜单显示在右下角。但是在随后的点击中它没关系。我能提出的最好的想法是

  • 显示applet启动时的JPopupMenu,然后在1ms延迟后隐藏它。

  • 编写自己的Swing菜单组件

任何人都有比第一个更优雅的想法但比第二个更少的工作?

0 个答案:

没有答案