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

时间:2015-06-12 09:32:38

标签: java jtextfield

按键盘按钮时我想要一个JTextFeild事件。我想要连接" ADZ"前面整个文本的文本。(如果我们输入" 2"整个文本应该是" ADZ2")操作将仅执行第一次按键操作。在任何按键操作后赢得'执行。动作只执行一次。 我试过下面的代码,但如果输入22,它会给出" ADZADZ22"。

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

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

3 个答案:

答案 0 :(得分:2)

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

org.pentaho.reporting.engine.classic.core.environment.pentahoImgPath=c:/myProject/images/
org.pentaho.reporting.engine.classic.core.env-mapping.pentahoImgPath=env\:\:pentahoImgPath

请注意:Java编码规则建议使字段名称(例如private void JTextFeild1KeyTyped(java.awt.event.KeyEvent evt) { String num1 = JTextFeild1.getText(); if (!num1.startsWith("ADZ")) { num1 = "ADZ" + num1; JTextFeild1.setText(num1); } ... } )以小写字符开头。方法名称也是如此(例如jTextField

答案 1 :(得分:1)

public static int counter = 0;

在班级维护静态计数器。按键时按一下。检查:

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

答案 2 :(得分:0)

检查JTextField是否为空,然后设置前缀。这种方法设置" ADZ"如果该字段为空并且您键入内容然后附加您键入的所有内容。

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