【问题标题】:How to fix "(java:22494): Gdk-WARNING..."如何修复“(java:22494):Gdk-WARNING ...”
【发布时间】:2019-08-22 02:42:11
【问题描述】:

我正在编写一个 javafx 程序,我需要面板以恒定速率更新。现在它设置为每秒更新一次。但是我得到了这个错误,通常(但不总是)当整个场景变得扭曲时,面板中会出现小故障(它就像镜子以一种奇怪的波涛汹涌的 x 图案出现在自己身上。很难解释)。

完全错误:(java:22494): Gdk-WARNING **: 18:38:59.118: XSetErrorHandler() 调用了一个 GDK 错误陷阱。不要那样做。

这是我的计时器代码:

Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run()  {
                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            String x = txtDisplay.getText();
                            txtDisplay.setText(x.substring(1, x.length()) + x.substring(0, 1));
                        } catch (NullPointerException e) {
                            System.out.println("Error.");
                        }
                    }
                });
            }
        }, 0, 500);

我认为问题出在上面的代码块上,就像我打破了一些基本的挥杆规则一样。我的另一个想法是它有两种方法可以同时编辑同一个文本区域,因为我有其他方法设置文本区域的文本。

对于错误的解决方案或执行上述方法的更好方法,我会很高兴。只需要每秒运行一次而不会崩溃。

谢谢。

编辑:一个新的发展,我现在一直得到一个“线程异常”AWT-EventQueue-0“java.lang.NullPointerException”,但堆栈跟踪没有引用我的代码中的任何位置。

【问题讨论】:

  • 您正在编写 JavaFX 或 Swing 应用程序吗?还是您将一个嵌入另一个?
  • 我正在编写一个 javafx 应用程序,但是为了做计时器,我查了一下,他们使用了我所知道的摆动嵌入,所以计时器是摆动嵌入(虽然我可能是错的,我是一个初学者)。
  • 对于 Swing,我相信您会使用 javax.swing.Timer 处理 UI 相关任务,使用 javax.swing.SwingWorker 处理后台任务。对于 JavaFX,您可以将 animation API 用于 UI 相关任务,将 javafx.concurrent.Worker 用于后台任务。

标签: swing javafx swingutilities


【解决方案1】:

Eclipse 下转到 运行/运行配置 并将以下选项添加到 (x)=Arguments 选项卡下的 vm 参数。

-Djdk.gtk.version=2

【讨论】:

    【解决方案2】:

    这看起来与JDK-8156779 相关(另见JDK-8211305)。 IE。 JDK 8、9 和 11 以及 GTK 3 存在一些问题。

    对我来说(在 Linux Mint 20.1 和 Open JDK 11、Bellsoft 11.0.10.fx-librca 上)解决方案是使用 -Djdk.gtk.version=2 强制 GTK 2

    其他人已经通过升级到 JDK 12 或更高版本来解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 2021-02-20
      • 1970-01-01
      • 2015-01-08
      相关资源
      最近更新 更多