首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法设置鼠标光标JLayeredPane

无法设置鼠标光标JLayeredPane
EN

Stack Overflow用户
提问于 2010-06-04 05:10:28
回答 4查看 462关注 0票数 3

我遇到了一个问题,我似乎找不到答案,也无法在网上找到答案。

我有一个JLayeredPane,当它只有一个子面板时,我可以使用setCursor()正确地设置光标。光标出现了,一切都很好。但是,当我在JLayeredPane中添加一个额外的JPanel时,光标不再显示

例如,这是可行的:

代码语言:javascript
复制
m_layeredPane = new JLayeredPane();
m_layeredPane.setLayout(new WBLayoutManager());
m_layeredPane.add(m_mediaPanel, new Integer(0));
// m_layeredPane.add(m_whiteboardPanel, new Integer(1));

m_layeredPane.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // WORKS

但这不是:

代码语言:javascript
复制
m_layeredPane = new JLayeredPane();
m_layeredPane.setLayout(new WBLayoutManager());
m_layeredPane.add(m_mediaPanel, new Integer(0));
m_layeredPane.add(m_whiteboardPanel, new Integer(1));

m_layeredPane.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // FAILS

有人知道如何让定制游标在JLayeredPane中工作吗?

EN

回答 4

Stack Overflow用户

发布于 2010-06-04 13:49:42

如果你看一下javax.swing.JLayeredPane源代码,你会看到它的构造函数是这样定义的:

代码语言:javascript
复制
public JLayeredPane() {
    setLayout(null);
}

这清楚地表明它需要自己处理组件布局。因此,您可以猜测(虽然没有文档记录,但我会认为这是文档错误),您不应该更改JLayeredPane的布局。

票数 3
EN

Stack Overflow用户

发布于 2013-11-14 01:18:56

虽然这个话题很古老,但没有一个答案令人满意。我通过以下方式解决了调用JLayeredPane的setCursor方法的问题:

代码语言:javascript
复制
this.getParent().setCursor( Cursor.getDefaultCursor() );

其中"this“是我要将光标更改到的组件。它的父对象是JLayeredPane (因为它是添加到其中的)。

票数 1
EN

Stack Overflow用户

发布于 2010-06-04 05:16:36

在使用How to Use Layered Panes教程中的演示代码时,我可以很好地工作。

基于这3行代码,我能从教程中看到的唯一区别是您使用的是布局管理器。

将您的代码与教程进行比较,以找出其他差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2969813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档