2013-04-11 33 views
0

我是新來的擺動,我敢肯定有另一種方式,但由於一些尷尬api desing我必須實現一個處理程序,recive MouseEvent並返回一個resault。我想向用戶顯示彈出式菜單,並根據用戶選擇的等待它關閉並返回值。 如何做到這一點? 在此先感謝。 行具體問題: 物質TabClos​​eCallback imterface有以下方法。如何等待彈出菜單關閉在搖擺

public TabCloseKind onAreaClick(JTabbedPane tabbedPane, 
      int tabIndex, MouseEvent mouseEvent); 

我希望顯示彈出菜單時,它被稱爲nad返回值基於用戶選擇的。

+1

出於我的好奇心,我認爲這是沒有必要的,請爲什麼理由 – mKorbel 2013-04-11 20:06:08

回答

1

通過調用JPopupMenu.addPopupMenuListener()來查看可以看到的事件。

特別是,你可以得到一個popupMenuWillBecomeInvisible()電話。

+0

沒關係,但我想「阻止」當前線程w/o bocking整個UI直到彈出菜單關閉。 – user629926 2013-04-11 20:04:23

+0

使用JOptionPane(默認代碼塊執行)代替JPopup,把JButtons代替JMenuItems,當然可以把JMenuItems放到JPanel中,但是爲什麼還要打擾 – mKorbel 2013-04-11 20:08:11

+0

然後我覺得@MadProgrammer的回答會讓你想要去的地方。我掛斷了聽到「彈出式菜單」,但我懷疑你可以用對話做你需要的一切。 – 2013-04-11 21:25:53

0

你可以在彈出類處理關閉事件,並設置變量,你期望

yourWindow.addWindowListener(new WindowAdapter() { 

    @Override 
    public void windowClosing(WindowEvent e) { 

     // catch what you want 
    } 
});