如何将鼠标监听器添加到JTree,以便在将鼠标悬停在节点上时可以更改光标(到手形光标)?

the*_*e19 2 java mouse jtree

正如问题所述,我想设置一个鼠标监听器,JTree以便HAND_CURSOR当用户将鼠标放在节点上时我可以将光标更改为a .

我已经有一个MouseAdapter登记在我的JTree处理单击事件,但我似乎无法得到MouseMovedMouseEntered/ MouseExited与我想要做的工作.

有什么建议?

Rah*_*thy 7

你需要添加一个MouseMotionListener/Adapter:

tree.addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseMoved(MouseEvent e) {
        int x = (int) e.getPoint().getX();
        int y = (int) e.getPoint().getY();
        TreePath path = tree.getPathForLocation(x, y);
        if (path == null) {
            tree.setCursor(Cursor.getDefaultCursor());
        } else {
            tree.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        }
    }
});
Run Code Online (Sandbox Code Playgroud)