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 菜单速度缓慢的解决方法 的相关文章

  • 在文本文件中写入多行(java)

    下面的代码是运行命令cmd并使用命令行的输出生成一个文本文件 下面的代码在 Eclipse 的输出窗口中显示了正确的信息 但在文本文件中只打印了最后一行 谁能帮我这个 import java io public class TextFile
  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • Java:迭代 Collection 的最佳方法(此处为 ArrayList)

    今天 当我看到一段我已经使用了数百次的代码时 我很高兴地开始编码 迭代集合 此处为 ArrayList 出于某种原因 我实际上查看了 Eclipse 的自动完成选项 这让我想知道 在什么情况下以下循环比其他循环更好使用 经典的数组索引循环
  • SAML 服务提供商 Spring Security

    当使用预先配置的服务提供者元数据时 在 Spring Security 中 是否应该有 2 个用于扩展元数据委托的 bean 定义 一份用于 IDP 元数据 一份用于 SP 元数据
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 如何使用 Java 处理 Selenium WebDriver 中的新窗口?

    这是我的代码 driver findElement By id ImageButton5 click Thread sleep 3000 String winHandleBefore driver getWindowHandle drive
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • 在 Netbeans 8 上配置 JBoss EAP 的问题

    我已经下载了 JBoss EAP 7 并正在 Netbeans 8 上配置它 我已经到达向导 实例属性 其中要求从选择框中选择 域 当我打开选择框时 它是空的 没有什么可以选择的 因此 完成 按钮也处于非活动状态 这使得无法完成配置 我通过
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • Java整数双除法混淆[重复]

    这个问题在这里已经有答案了 方案1 int sum 30 double avg sum 4 result is 7 0 not 7 5 VS 方案2 int sum 30 double avg sum 4 0 Prints lns 7 5
  • 测试弱引用

    在 Java 中测试弱引用的正确方法是什么 我最初的想法是执行以下操作 public class WeakReferenceTest public class Target private String value public Targe
  • 将 Azure AD 高级自定义角色与 Spring Security 结合使用以进行基于角色的访问

    我创建了一个演示 Spring Boot 应用程序 我想在其中使用 AD 身份验证和授权 并使用 AD 和 Spring Security 查看 Azure 文档 我执行了以下操作 package com myapp contactdb c
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • Eclipse 中 Spring MVC 模型对象的 (jsp /jstl) 视图中的代码辅助

    在 Spring MVC 中 当将对象放置在视图模型中时 如下所示 public String getUser Model model fetch user model addAttribute user user return viewN
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么这个作业不起作用?

    我有课Results which extends ArrayList
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个

随机推荐

  • 将谷歌广告添加到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