仅按下第一个键时如何执行操作?

How to perform an action when only first key pressed?

当键盘按钮 pressed.I 想要将 "ADZ" 文本连接到前面的整个文本时,我想要一个 JTextFeild 事件。(如果我们输入“2”,整个文本应该是 "ADZ2")THe动作只会执行第一个键 press.After 任何按键动作都不会 performed.Action 只会执行一次。 我试过下面的代码,但如果输入 22,它会给出 "ADZADZ22".

private void JTextFeild1KeyTyped(java.awt.event.KeyEvent evt) {
String num1 = JTextFeild1.getText();
JTextFeild1.setText("ADZ"+num1);

我想要这个,如果输入 22,它会给出 ADZ22。

解决它的一个简单方法是检查前缀是否已经存在。 这样可以避免相同的前缀被添加两次。

private void JTextFeild1KeyTyped(java.awt.event.KeyEvent evt) {
  String num1 = JTextFeild1.getText();
  if (!num1.startsWith("ADZ"))
  {
    num1 = "ADZ" + num1;
    JTextFeild1.setText(num1);
  }
  ...
}

请注意:Java 编码规则建议字段名称(例如 jTextField)以小写字符开头。方法名称也是如此(例如 private void jTextField1KeyTyped

public static int counter = 0;

将静态计数器保持在 class 级别。在按键时将其增加一。检查:

    if(counter == 1) {
// do your operation
}

检查你的JTextField是否为空,然后设置前缀。此方法设置 "ADZ" 当字段为空并且您键入内容然后附加您键入的所有内容时。

public void keyTyped(KeyEvent ke) {
            if(txfInput.getText().equals("")) {
                txfInput.setText("ADZ");
            }
        }