putValue(MNEMONIC_KEY, KeyEvent.VK_S) 是做什么的?

What does putValue(MNEMONIC_KEY, KeyEvent.VK_S) do?

我遇到了一个问题,已通过以下问题的答案得到解决: Java Thread Start-Stop-Start on same button click 我知道它的作用,但我不知道为什么。我不完全理解的是看起来像这样的块:

private class StartAction extends AbstractAction {
public StartAction() {
       super("Start");
            putValue(MNEMONIC_KEY, KeyEvent.VK_S);
        }

我已经搜索了很长时间,但找不到关于 putValue 究竟做什么以及输入参数是什么的答案 are/do。如果我是正确的,我们会在超类 AbstractAction 中寻找 StartAction("Start") 方法。但是,putValue 做了什么以及 StartAction 如何知道如何处理输入“Start”?

what the putValue exactly does

它只是设置了 Action 的 属性。

阅读有关 How to Use Actions 的 Swing 教程部分,了解更多信息和所有属性的列表。

当您将 Action 添加到 Swing 组件(JButton、JMenuItem 等)时,Action 的属性用于配置组件。因此可以在所有组件上使用相同的“文本”,所有组件的“启用”状态等都是相同的。

在助记符属性的情况下,将自动设置一个Key Binding,以便您可以在使用KeyStroke时调用Action。阅读 Key Bindings

上的 Swing 教程部分