一般使用 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
沒有留言:
張貼留言