应该在EDT内部声明键绑定吗?

问题描述 投票:0回答:1

我找不到有关Java键绑定和线程安全性的太多信息。

我有一段这样的代码:

        getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(
            KeyEvent.VK_LEFT, 0), "leftArrowKey");
        getActionMap().put("leftArrowKey", new LeftArrowListener());

        getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(
            KeyEvent.VK_RIGHT, 0), "rightArrowKey");
        getActionMap().put("rightArrowKey", new RightArrowListener());

此代码应始终保存在EDT中吗?

或者可以将其放在单独的线程上吗?

java swing thread-safety event-dispatch-thread
1个回答
2
投票

Swing的某些部分是线程敌对的。没有定义哪个部分。因此,只需在EDT上执行所有Swing。

© www.soinside.com 2019 - 2024. All rights reserved.