gpt4 book ai didi

Java Swing UIManger 导致速度缓慢

转载 作者:行者123 更新时间:2023-12-02 12:30:06 24 4
gpt4 key购买 nike

我在实时股票价格 GUI java 应用程序中遇到了一个奇怪的问题。问题是这段代码:

InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");

如果您从主线程调用它,整个 GUI 应用程序会变得非常慢,在向上/向下滚动表格时会出现滞后。修复似乎是从 Swing 线程调用代码。

当错误的线程调用它时会发生什么?

最佳答案

The fix seems to be to call the code from Swing thread.

实际上,修复方法是从单独的线程调用处理逻辑,而不是事件调度线程 (EDT)。 EDT 是负责响应事件和绘制 GUI 的 Swing 线程,因此它不应该执行长时间运行的代码,否则 GUI 将变得无响应。

阅读 Swing 教程中关于 Concurrency 的部分了解更多信息。您可以使用 SwingWorker 执行长时间运行的代码。

关于Java Swing UIManger 导致速度缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com