Java swt treeview弹出菜单

时间:2010-06-09 12:43:15

标签: java popup swt

HIHO,

目前我有一个工作弹出菜单,当我点击树视图项目时会出现。 但我想为不同的树视图条目显示不同的弹出窗口。我不明白该怎么做......

以下是我创建菜单的代码:

 MenuManager menuMgr = new MenuManager("#PopupMenu"); 
 menuMgr.setRemoveAllWhenShown(true);
 menuMgr.addMenuListener(new IMenuListener() {
     @Override
     public void menuAboutToShow(IMenuManager manager) {
         Action action = new Action() {
      public void run() {
                // So something
      }
  };
  action.setText("Set as working file");
  manager.add(action);
 }

 });

 Menu menu = menuMgr.createContextMenu(getTree());
 getTree().setMenu(menu);

2 个答案:

答案 0 :(得分:1)

您应该在树上使用MouseListener

final Tree tree = new Tree(parent, ...);
tree.addMouseListener(new MouseAdapter() {
    @override
    public void mouseDown(MouseEvent me) {
        if(tree.getSelection() instanceof MySpecificTreeNode) {
            // create menu...
        }
    }
});

答案 1 :(得分:0)

两个想法。对于两者,您需要在TreeView上收听选择,因为这是确定要显示哪个菜单(或特殊内容)的唯一方法。

然后,您可以在知道要使用哪个菜单或将所需项目提供给现有菜单后立即将正确的菜单设置到树中(这就是在eclipse框架中完成的方式)。