慢 Java Swing 菜单的解决方法 [英] Workaround for Slow Java Swing Menus

查看:30
本文介绍了慢 Java Swing 菜单的解决方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Java 7 和 8 中,Swing 菜单中存在一个错误,导致在其他 X11 应用程序正在运行时通过 X11 远程运行应用程序时它会变慢.这个问题是在 Java 7 中引入的,并且从未被修复.有没有人对解决方法有任何建议.使用 nxclient 解决了这个 Swing 菜单问题,但引入了它自己不受欢迎的问题.

In Java 7 and 8 there is a bug in Swing menus that causes it to be slow when running an application remotely over X11 while other X11 applications are running. This issue was introduced in Java 7 and has never been fixed. Does anyone have any suggestions on a workaround. Using nxclient addresses this Swing menu issue, but introduces its own unwelcome issues.

重现 Swing 菜单问题的步骤是:- 通过一些活动在本地运行任何 X11 应用程序- 使用 ssh -Y someserver 登录远程服务器- 执行任何运行 Java 7 或 8 的 Java GUI 应用程序(例如 jvisualvm)- 选择一个菜单并观察几秒钟的响应延迟

The steps to reproduce the Swing menu issue are: - run any X11 application locally with some activity - log into a remote server using ssh -Y someserver - execute any Java GUI application (e.g. jvisualvm) running Java 7 or 8 - select a menu and observe a several second delay in response

推荐答案

刚刚花了一整天试图解决同样的问题.那里几乎没有任何信息.

Just spent an entire day trying to solve the same issue. There's barely any info out there.

本地机器:

  1. Linux FedoraCore 20、KDE ​​桌面、NVIDIA GeForce 7300 LE
  2. Linux FedoraCore 20、KDE ​​桌面、NVIDIA GeForce GT 720

通过 ssh 运行远程 Java GUI,PC2 的摆动弹出窗口非常慢.桌面冻结,直到出现弹出窗口.另一方面,PC1 运行非常快/平稳,完全没有问题.

Running remote Java GUI over ssh, swing popups are extremely slow for PC2. Desktop freezes until popup appears. On the other hand, PC1 runs very fast/smooth, with no problems at all.

事实证明,就我而言,问题在于 PC2 有 2 个显示器.我能找到的最接近的错误报告是: JDK-8004103 : sun.awt.X11.XToolkit.getScreenInsets()可能很慢而且它似乎仍然打开.

Turns out, in my case, the problem is that PC2 has 2 monitors. The closest bug report I could find is: JDK-8004103 : sun.awt.X11.XToolkit.getScreenInsets() may be very slow and it appears to be still open.

临时解决方法:

  1. 在 KDE 中,禁用第二个监视器,启动应用程序,启用第二个监视器
  2. 在 Gnome 桌面上工作(我的 Gnome 环境不受此问题影响)
  3. 使用 Java 6 启动远程 Java 应用程序(Java6 中不存在此问题)

这些都不是理想的解决方法,但考虑到每次单击菜单项时我的桌面都会冻结 3-4 秒,它们暂时可以解决.

None of these are ideal workarounds, but considering that my Desktop freezes for 3-4 seconds every time I click on a menu item, they'll do for the time being.

这篇关于慢 Java Swing 菜单的解决方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆