java - 慢速 Java Swing 菜单的解决方法

标签 java swing menu

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

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

最佳答案

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

本地机器:

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

通过 ssh 运行远程 Java GUI, Swing 弹出窗口对于 PC2 来说非常慢。桌面卡住,直到出现弹出窗口。另一方面,PC1 运行非常快/流畅,完全没有问题。

事实证明,就我而言,问题在于 PC2 有 2 个显示器。我能找到的最接近的错误报告是:JDK-8004103 : sun.awt.X11.XToolkit.getScreenInsets() may be very slow而且它似乎还开着。

临时解决方法:

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

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

关于java - 慢速 Java Swing 菜单的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26002948/

相关文章:

css - 如何处理触摸屏设备(iPad)上的菜单悬停

javascript - 如何使用 Electron 显示打开的文件 native 对话框?

java - java程序中两个线程之间的延迟

java - 比较 Joda LocalDateTime 和 DateTime 在范围内

java - 3 栋房屋和最低油漆费用

Java - 从匿名类内部访问循环计数器

Java swing 和展开窗口/文本区域

java - "the value of the local variable is not used"的多个实例

java - JPanel 位置被 BufferStrategy 重击

Android:上/下动画滑动菜单