[英]How do I get a mouse listener on a DefaultMutableTreeNode?
我知道我可以在Jtree中添加mouseListener,但是我需要雙擊他的元素之一和doSomething();。
如果您有興趣檢測雙擊事件或用戶單擊節點時,無論是否選擇了該節點,我們建議您執行以下操作:
final JTree tree = ...;
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
};
tree.addMouseListener(ml);
檢查一下:
public class NetworkTree extends JPanel implements TreeSelectionListener {
private JTree tree;
private static int PANEL_WIDTH=250;
private static int PANEL_HEIGHT=500;
private static String lineStyle = "Horizontal";
public NetworkTree() {
DefaultMutableTreeNode top = new DefaultMutableTreeNode(new Site(
1,1,"Network","",3));
getSubNodes(top,0);
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
JScrollPane treeView = new JScrollPane(tree);
add(treeView);
tree.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
newNodeSelected();
}
});
}
.....
public void newNodeSelected() {
JOptionPane.showMessageDialog(null,"Hello");
}
.....}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.