2008年4月13日 星期日

[Java] 如何由滑鼠位置取得目前 JTree 節點的物件參考

一般使用 JTree 可能需要, 讓使用者在中間節點按滑鼠右鍵, 會自動跳出一個 Popup menu 進行操作. 例如: 新增, 刪除, 修改.

下面是一個範例: PopUp 由實作 GroupNode 介面的節點物件提供.

程式碼的重點:

1.  如何由滑鼠位置取得目前 JTree 節點的物件參考

 

            
JTree tree=(JTree) e.getSource();
if(selRow==0){ // Root node, 顯示基本選單
RootPopupMenu.show((Component)e.getSource(), e.getX(), e.getY());
}else{
// 設定目前滑鼠所在的 node
setSelectionPath(selPath);

// 取得滑鼠所在的 node 物件
DefaultMutableTreeNode node=(DefaultMutableTreeNode) getLastSelectedPathComponent();
System.out.println("node="+node);

// 取得 bind 在 node 裡面的 user object
if(node.getUserObject() instanceof CameraGroupNode){
CameraGroupNode CameraGroupNode=(CameraGroupNode) node.getUserObject();
// 顯示對應該 Group Node 的 Popup menu 功能選項
JPopupMenu pop=CameraGroupNode.getPopUp();
pop.show(tree, e.getX(), e.getY());
}


by Jing

沒有留言:

張貼留言