1

我独立发明了与如何使用菜单创建 JButton中所述相同的解决方案?用于在 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 没有正确初始化,菜单出现在右下角。但是在随后的点击中它没关系。我能想到的最好的主意是

  • 在小程序启动时显示 JPopupMenu,然后在 1ms 延迟后将其隐藏。

  • 编写我自己的 Swing 菜单组件

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

4

0 回答 0