带有 keyTyped 事件的 Java get action 命令



我有一个JTextField,我用方法setActionCommand(String s)设置了一个动作命令。似乎我只能在使用操作执行事件时获取此操作命令。

但是,我需要使用keyTyped事件从我的JTexteField获取一些签名,因为我使用了多个JTextFields,我需要区分Enter键是在哪一个中键入的。这是我的keyTyped事件片段:

public void keyTyped(KeyEvent k) {
    String id = k.getComponent().getClass().getSimpleName();
    if (KeyEvent.VK_ENTER == k.getKeyChar() && "JTextField".equals( id )) {
        JTextField tempTxt = (JTextField) k.getComponent();
        // Here I would like to get my JTextField signature, such as k.getActionCommand() with actionPerformed() method
    }
}

我该怎么做?

您可以在每个JTextField上使用setName(String name),然后您可以通过调用k.getComponent().getName()来区分它们

但是,我需要从我的 JTexteField 获得一些签名,并带有 keyTyped 事件,因为我使用多个 JTextFields,我需要 区分在哪一个中键入了 Enter 键。这是我的 键类型化事件的代码段:

  • 使用添加到 JTextField 的 ActionListener 而不是 KeyListener

  • JTextComponents使用 DocumentListener/DocumentFilter

  • 那么最简单的方法可能是

    1. 设置名称/获取名称

    2. putClientProperty/getClientProperty

相关内容

  • 没有找到相关文章

最新更新