我有一个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 -
那么最简单的方法可能是
-
设置名称/获取名称
-
putClientProperty/getClientProperty
-