簡體   English   中英

您在哪里存儲JPopupMenu的邏輯?

[英]Where do you store the logic for a JPopupMenu?

我對應該放置動作邏輯(用戶從彈出菜單中選擇菜單項時會發生什么)的位置感到困惑。 當前,我將其存儲在JPopupMenu的子類中,但是當我單擊菜單項時,它似乎沒有調用該事件。

子類代碼:

public class MyPopupMenu extends JPopupMenu {
    JMenuItem item1;
    JMenuItem item2;

    public MyPopupMenu() {
        item1 = new JMenuItem("New Tab");
        item2 = new JMenuItem("Close Tab");

        add(item1);
        add(item2);

    }

    class myListener extends MouseAdapter {
        @Override
        public void mouseClicked(MouseEvent ev) {
            System.out.println("I've been clicked!");
        }
    }
}

我通過調用setComponentPopupMenu方法將其附加到我的JTabbedPane。

myTabPane.setComponentPopupMenu(myPopupMenu); 

這樣編譯就可以了。 並且確實按預期顯示了彈出菜單,但是在彈出菜單中選擇菜單選項之一時,所有菜單均處於靜默狀態。 沒有消息顯示。 我需要把它放在其他地方嗎?

將MouseListner添加到您的菜單項

myListener myListener = new myListener();
item1.addMouseListener(myListener);
item2.addMouseListener(myListener);

看來您的方法有點錯誤。 請參閱如何使用菜單

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM