Java Swing getToolkit 和自定义光标奇怪的行为

发布于 2024-12-13 18:29:40 字数 732 浏览 0 评论 0原文

我正在我的 Netbeans Java Swing 应用程序中创建自定义光标。例如,当“cursorImage”是磁盘上的图像文件时,我会像这样创建默认光标:

Cursor defaultCursor = toolkit.createCustomCursor(cursorImage, hotspot, name);

一旦我开始使用自定义光标,我的应用程序就开始出现非常奇怪的错误,我什至无法解释。通过排查,我发现问题出在下面的代码上。此代码与我的应用程序(Netbeans SingleFrameApplication)相关。

Toolkit toolkit = MyApp.getApplication().getMainView().getRootPane()
.getToolkit().getDefaultToolkit();

该代码存在于一个名为 CursorController 的简单非 GUI POJO 类中。

我用这段代码替换了它:

Component c = new JButton("getToolkit");
Toolkit toolkit = c.getToolkit();

我什至不在任何地方显示该按钮。但现在 bug 已经消失了。

问题是我不明白这个问题或者为什么它现在(显然)得到解决。我不太有信心我已经以正确的方式解决了这个问题。我不应该仅仅为了获取工具包而创建一个按钮,对吧?

I am creating custom cursors in my Netbeans Java Swing app. For example, where 'cursorImage' is an image file on disk, I create my default cursor like so:

Cursor defaultCursor = toolkit.createCustomCursor(cursorImage, hotspot, name);

Once I starting using custom cursors, my application started exhibiting very strange bugs that I cannot even explain. Through troubleshooting, I found the following code to be the problem. This code is related to my app being a Netbeans SingleFrameApplication.

Toolkit toolkit = MyApp.getApplication().getMainView().getRootPane()
.getToolkit().getDefaultToolkit();

The code exists in a simple non-GUI POJO class called CursorController.

I replaced it by this code:

Component c = new JButton("getToolkit");
Toolkit toolkit = c.getToolkit();

I don't even display the button anywhere. But the bugs are gone now.

The problem is that I do not understand the problem or why it is (apparently) resolved now. I'm not very confident that I have solved it the right way. I shouldn't really create a button just to get the toolkit, right?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文