[英]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);
這樣編譯就可以了。 並且確實按預期顯示了彈出菜單,但是在彈出菜單中選擇菜單選項之一時,所有菜單均處於靜默狀態。 沒有消息顯示。 我需要把它放在其他地方嗎?
您必須將MouseListener添加到JMenuItems
添加適當的偵聽器以使用Swing Action , JMenuItems的 ActionListener ,閱讀Oracle教程以獲取工作代碼示例
將MouseListner添加到您的菜單項
myListener myListener = new myListener();
item1.addMouseListener(myListener);
item2.addMouseListener(myListener);
看來您的方法有點錯誤。 請參閱如何使用菜單
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.