Java Swing 菜单速度缓慢的解决方法

2024-01-24

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

重现 Swing 菜单问题的步骤是: - 通过一些活动在本地运行任何 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() 可能非常慢 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8004103而且它似乎仍然开放。

临时解决方法:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Swing 菜单速度缓慢的解决方法 的相关文章

随机推荐

  • 将谷歌广告添加到Android应用程序

    我正在尝试将谷歌广告添加到我的应用程序 这是我第一次 我也添加了 jar 文件 这是 xml
  • MS Chart:如何更改条形图轴上每个标签的颜色?

    我有一个条形图 它在 Y 轴上显示不同的类别 我可以使用以下方法同时更改轴上所有颜色的颜色 chart ChartAreas MyChart AxisY LabelStyle ForeColor Red 但是它不允许我为每个设置颜色 任何帮
  • 将 URL 转换为绝对路径

    有没有简单的方法可以将包含两字节字符的 URL 转换为绝对路径 我问的原因是我正在尝试寻找这样的资源 URL url getClass getResources getresources test txt String path url t
  • 从目录获取文件时排除某些文件扩展名

    How to exclude从目录获取文件时的某些文件类型 I tried var files Directory GetFiles jobDir 不过这个功能好像只能选择你想要包含的文件类型 不能排除 你应该自己过滤这些文件 你可以这样写
  • 我应该按照什么顺序包含头文件?

    我是编程新手 在我开始使用大量头文件后 头文件的主题让我陷入了困境 除此之外 我正在尝试使用预编译头 我还使用 SFML 库 因此我还必须包含那些标头 现在我有 stdafx h main cpp 然后是 A h A cpp B h B c
  • libgdx - 如何在舞台中添加背景图像?

    我正在学习 libgdx 但我陷入了困境 我在舞台中添加了一个按钮 现在我想在舞台中添加一个图像 以便该图像看起来像按钮的背景图像 我的意思是说按钮应该位于图像上 我一直在寻找教程但无法做到这一点 如何做呢 有什么帮助吗 您唯一需要做的就是
  • Nodemon 不工作:[nodemon] 由于更改而重新启动

    I use nodemon questions tagged nodemon作为节点中的开发依赖项 突然 CLI 中显示 nodemon 由于更改而重新启动 当我更改代码时 然后我已经全局安装了nodemon 但它仍然无法工作 它不适用于任
  • 如何在不使用if的情况下编写Fibonacci Java程序[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在 int Fibonacci in
  • IE 下的脚本 onload/onerror(用于延迟加载)问题

    我正在重建我的延迟加载模块以接受异步请求 但我有一个大问题 Internet Explorer 不支持 script onload onerror 旧脚本确实全局评估了使用 ajax 同步调用读取的目标脚本源 它工作得很好 它是跨浏览器的
  • 有没有办法在 HTML5 视频上使用 DRM?

    由于 Flash 正在节节败退 我想知道是否有办法通过 DRM H264 ogg 和 WebM 保护 html5 视频 On the HTML5 上的 W3C 常见问题解答 http www w3 org html wiki FAQs Is
  • 如何在 Windows 中以编程方式更改 DNS 服务器?

    我想以编程方式更改 DNS 服务器 我不想建立DNS服务器 我只是想自动更改主备dns服务器 这项工作需要用Python来完成 您可以使用 os system 调用命令行工具来为您完成此操作 import os os system nets
  • VS2017任务运行资源管理器未找到任务

    我正在尝试在 VS 2017 内的 MVC Core 项目中设置 gulp 我有我认为有效的 gulpfile js var gulp require gulp var rimraf require rimraf var concat re
  • 在 DataBound 事件上获取绑定到 ListView 的数据

    我有一个 ListView 控件 并且已向该控件添加了一个 DataBound 事件 不知道这是否正确 我想从该事件访问绑定到该特定 ItemTemplate 的数据 这可能吗 C 解决方案 protected void listView
  • 当 contenteditable 中有多行时,替换光标前的单词

    我想替换光标之前的单词contenteditablediv 另见在文本区域或 contenteditable div 中键入 TAB 时检测最后写入的单词 https stackoverflow com questions 50794324
  • “忙碌”效果叠加

    我有一个 wpf 应用程序 它执行非常繁重的操作 其中用户需要等待应用程序 思考 我想要做的是 当应用程序的主线程正在思考时 另一个线程将禁用整个窗口并给它一种灰色的颜色 并且屏幕中间会出现一个圆形进度条 这是一个大问题 我真的不需要整个代
  • 类型“ViewController”不符合协议“UITableViewDataSource”

    很快就开始练习了 在单个 ViewController 中我试图制作一个UITableView 在故事板中 我设置了数据源和委托 我在这里收到错误 ViewController 不符合协议 UITableViewDataSource cla
  • SqlProfileProvider - 您可以在项目中使用 Profile.GetProfile() 吗?

    我正在尝试在应用程序中使用 SqlProfileProvider 但似乎无法按照我想要的方式使用它 我希望能够简单地调用这样的配置文件 Profile p Profile GetProfile naspinski p Organizatio
  • 在 Visual Studio 2010 中调试 exe

    有没有办法使用 Visual Studio 2010 通过 Shift 双击运行 exe 来调试外部 exe 通常 要在特殊模式下运行应用程序 我们必须按 Shift 键并双击 exe 但我在启动时遇到了一个错误 我想我需要添加一个命令行参
  • 如何替换cmd.exe中的百分号字符?

    在 Windows 命令提示符中 我尝试替换中的空格set string Hello World用字符串 20 天真地尝试像这样使用字符串文字 20 set string string 20 结果是HelloWorld20 尝试使用转义字符
  • Java Swing 菜单速度缓慢的解决方法

    在 Java 7 和 8 中 Swing 菜单中存在一个错误 导致在其他 X11 应用程序正在运行时通过 X11 远程运行应用程序时速度缓慢 这个问题是在 Java 7 中引入的 并且从未得到修复 有人对解决方法有任何建议吗 使用 nxcl