gpt4 book ai didi

java - 如何在 JTextField 中监听一个字符的输入?

转载 作者:搜寻专家 更新时间:2023-11-01 01:55:34 25 4
gpt4 key购买 nike

在 Sql 查询中发送此 JTextField 的内容之前(以避免 SqlException),我希望能够验证 JTextField 是否只包含“数字”而不包含(+,-)。

我要:

  • 如果我输入一个字母,将显示一个 JLabel,并且 JTextField 的颜色变为红色。

    label_errer.setVisible (true);

  • 如果我删除字母,JLabel 将消失,而 JTextField 的颜色是正常的。

    label_errer.setVisible (false);

如果我点击“enter”,下面的代码会起作用:

            textField_app = new JTextField(3);
textField_app.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {


JTextField source = (JTextField) e.getSource();
String textFieldContent = source.getText();

Color bgColor = Color.RED;

boolean isNumeric=false;
try {

Integer.parseInt(textFieldContent);
isNumeric = true;
bgColor = Color.WHITE;
label_errA.setVisible(false);
} catch (Exception e2) {
// ---> isNumeric=false
}

source.setBackground(bgColor);


if(isNumeric==false){
label_errA.setEnabled(true);
label_errA.setVisible(true);


}

}
});

这个解决方案有效,但还有其他解决方案吗?

        textField_app = new JTextField(3);
KeyListener keyListener = new KeyListener() {
public void keyPressed(KeyEvent keyEvent) {
printIt("Pressed", keyEvent);
}

public void keyReleased(KeyEvent keyEvent) {
printIt("Released", keyEvent);
}

public void keyTyped(KeyEvent keyEvent) {
printIt("Typed", keyEvent);
}

private void printIt(String title, KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
String keyText = KeyEvent.getKeyText(keyCode).toString();


if(keyCode==(getKeyBinding(keyText))){
textField_app.setBackground(new Color(220, 20, 60));
label_errA.setEnabled(true);
label_errA.setVisible(true);
}
else {
Color bgColor =Color.WHITE;
textField_app.setBackground(bgColor);

label_errA.setEnabled(false);
label_errA.setVisible(false);
}

}
};


public int getKeyBinding(String k){
if(k.equals("A")){
return KeyEvent.VK_A;
} else if(k.equals("B")){
return KeyEvent.VK_B;
} else if(k.equals("C")){
return KeyEvent.VK_C;
} else if(k.equals("D")){
return KeyEvent.VK_D;
} else if(k.equals("E")){
return KeyEvent.VK_E;
} else if(k.equals("F")){
return KeyEvent.VK_F;
} else if(k.equals("G")){
return KeyEvent.VK_G;
} else if(k.equals("H")){
return KeyEvent.VK_H;
} else if(k.equals("I")){
return KeyEvent.VK_I;
} else if(k.equals("J")){
return KeyEvent.VK_J;
} else if(k.equals("K")){
return KeyEvent.VK_K;
} else if(k.equals("L")){
return KeyEvent.VK_L;
} else if(k.equals("M")){
return KeyEvent.VK_M;
} else if(k.equals("N")){
return KeyEvent.VK_N;
} else if(k.equals("O")){
return KeyEvent.VK_O;
} else if(k.equals("P")){
return KeyEvent.VK_P;
} else if(k.equals("Q")){
return KeyEvent.VK_Q;
} else if(k.equals("R")){
return KeyEvent.VK_R;
} else if(k.equals("S")){
return KeyEvent.VK_S;
} else if(k.equals("T")){
return KeyEvent.VK_T;
} else if(k.equals("U")){
return KeyEvent.VK_U;
} else if(k.equals("V")){
return KeyEvent.VK_V;
} else if(k.equals("W")){
return KeyEvent.VK_W;
} else if(k.equals("X")){
return KeyEvent.VK_X;
} else if(k.equals("Y")){
return KeyEvent.VK_Y;
} else if(k.equals("Z")){
return KeyEvent.VK_Z;
}
else{
return 0;
}
}

最佳答案

您正在寻找 JFormattedTextField .你有所有信息here让自己开始。

关于java - 如何在 JTextField 中监听一个字符的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com