java - 鼠标光标在对象上滚动时不会改变

标签 java swing user-interface mouseover jsplitpane

我构建的 GUI 遇到问题。我试图在滚动某些对象时设置不同的光标变化 - 即,将鼠标悬停在按钮上时设置手形光标,将鼠标悬停在文本字段上时设置文本光标。但是,适当的代码不起作用。我已经尝试过以下两种代码:

classArmBtn.setCursor(new Cursor(Cursor.HAND_CURSOR));

还有

classAlcBtn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

但是,我知道光标不会改变的原因是因为这些对象位于嵌套在 JSplitPane 中的面板中。然而,JSplitPane 被禁用,因为我不希望它被允许调整大小。有什么方法可以重写方法并允许这些游标更改吗?谢谢!

最佳答案

The JSplitPane, however, is disabled because I don't want it to be allowed to resize.

禁用调整大小的另一种方法是仅禁用分隔符并从分割 Pane 分隔符中删除 MouseListener:

BasicSplitPaneUI ui = (BasicSplitPaneUI)splitPane.getUI();
BasicSplitPaneDivider divider = ui.getDivider();
divider.setEnabled( false );

for (MouseListener ml: divider.getListeners(MouseListener.class))
    divider.removeMouseListener( ml );

现在可以设置光标,因为该组件未禁用。

关于java - 鼠标光标在对象上滚动时不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42203189/

相关文章:

java - 在 Javafx 中切换场景时如何保持窗口大小?

c++ - 分别针对不同平台开发,有人推荐吗?

java - 哪个更好 : letting Java do autoboxing or using valueOf()

java - 如何在 Java Swing 中设置当前屏幕尺寸?

java - 登录 SwingWorker

java - 显示用户名

c# - 使用 Mono 的跨平台 C# 应用程序和漂亮的 UI

java - 在Java中检查输入是5、10、15、20、25还是30

java - 使用 gradle 构建 netflix nicobar 时出错

java - 如何使用 Java 通过网络将文件从一台计算机传输到另一台计算机?