【发布时间】:2013-10-30 19:25:18
【问题描述】:
我一直在尝试让 JTextArea 在某个 TextField 中按下 F2 时显示某个字符串,但目前还没有成功。非常感谢任何帮助。
我的代码可能会揭示我的编程经验有多么少:
final String ACTION_KEY = "this text";
public void actionPerformed(ActionEvent actionEvent) {
JTextField source = (JTextField) actionEvent.getSource();
System.out.println("Activated: " + source.getText());
textAreaInstructions.setText("this text");
}
};
KeyStroke F2 = KeyStroke.getKeyStroke("F2");
InputMap inputMap = timeStep.getInputMap();
inputMap.put(F2, ACTION_KEY);
ActionMap actionMap = timeStep.getActionMap();
actionMap.put(ACTION_KEY, actionListener);
编辑:我现在正在尝试使用此代码:
InputMap inputMap = timeStep.getInputMap();
Object actionSubmit = inputMap.get(KeyStroke.getKeyStroke("ENTER"));
Object actionSubmitSp = inputMap.get(KeyStroke.getKeyStroke("SPACE"));
System.out.println("actionSubmit for space = " + actionSubmitSp);
ActionMap actionMap = timeStep.getActionMap();
Action action = actionMap.get(actionSubmit);
System.out.println("actionSubmit = " + actionSubmit);
timeStep.getInputMap().put(KeyStroke.getKeyStroke("SPACE"),
actionSubmit);
编辑:
这会打印出来
actionSubmit for space = null
actionSubmit = notify-field-accept
这有用吗?
【问题讨论】:
-
您是否需要始终刷新 JTextArea 中的文本?还是只需要按键刷新?
-
只能按 F2 (嗯,这是我实际上想要的选项卡,但我知道可能还有其他与选项卡有关的问题,所以我想我会先尝试 F2)
-
我不明白你的问题是什么?您在使用
KeyBindings时遇到问题吗?尝试阅读此How to use KeyBindings -
我的问题与发布的代码无关。那是我将文件的备份保存在与原始文件相同的包中并且忘记更改代码,因此正在实施备份而不是更新的原始文件。这花了我很多时间。哈哈。也就是说,我还没有确定我确实了解如何进行这项工作:当我发布这篇文章时,我已经在电脑上呆了很长时间,而我才刚刚回到网上。 +1 为您提供帮助。
-
问题已解决:详见答案。
标签: java swing jtextfield key-bindings key-events