From ea135161eff1dd7c71c159be948e93b50fd1db81 Mon Sep 17 00:00:00 2001 From: 826220679@qq.com <826220679@qq.com> Date: 星期日, 24 八月 2025 22:40:16 +0800 Subject: [PATCH] 0824 --- src/window/NavigationTreeFactory.java | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/window/NavigationTreeFactory.java b/src/window/NavigationTreeFactory.java index f2fc369..ed94468 100644 --- a/src/window/NavigationTreeFactory.java +++ b/src/window/NavigationTreeFactory.java @@ -1,18 +1,19 @@ package window; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; - import dell_map.Dell_Map; - import java.util.ResourceBundle; import java.awt.Font; +import java.awt.Cursor; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + public class NavigationTreeFactory { public static JTree createNavigationTree(ResourceBundle messages) { DefaultMutableTreeNode root = new DefaultMutableTreeNode(messages.getString("NAVIGATION")); - - // 地图节点 + // 地图节点 DefaultMutableTreeNode mapNode = new DefaultMutableTreeNode(messages.getString("MAP")); // 地图节点 (一级) String[] mapNames = Dell_Map.getAllMapNames(); @@ -83,6 +84,27 @@ tree.setFont(new Font("微软雅黑", Font.PLAIN, 14)); tree.setShowsRootHandles(true); + // 添加鼠标移动监听器来改变光标 + tree.addMouseMotionListener(new MouseAdapter() { + @Override + public void mouseMoved(MouseEvent e) { + int row = tree.getRowForLocation(e.getX(), e.getY()); + if (row >= 0) { + tree.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + } else { + tree.setCursor(Cursor.getDefaultCursor()); + } + } + }); + + // 添加鼠标退出监听器,恢复默认光标 + tree.addMouseListener(new MouseAdapter() { + @Override + public void mouseExited(MouseEvent e) { + tree.setCursor(Cursor.getDefaultCursor()); + } + }); + // 展开所有节点 for (int i = 0; i < tree.getRowCount(); i++) { tree.expandRow(i); -- Gitblit v1.9.3