Java 向多个文本字段添加文本字段验证
我试图只使用数字字符(0-9)向4个JTextFields添加验证。我对一个JTextField的代码是:Java 向多个文本字段添加文本字段验证,java,swing,validation,jtextfield,inputverifier,Java,Swing,Validation,Jtextfield,Inputverifier,我试图只使用数字字符(0-9)向4个JTextFields添加验证。我对一个JTextField的代码是: txtf_xCoord.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent keyEvent) { if (txtf_xCoord.getText().length() < 3 && keyEv
txtf_xCoord.addKeyListener(new KeyAdapter()
{
@Override
public void keyTyped(KeyEvent keyEvent)
{
if (txtf_xCoord.getText().length() < 3 && keyEvent.getKeyChar() >= '0' && keyEvent.getKeyChar() <= '9')
{
// Optional
super.keyTyped(keyEvent);
}
else
{
// Discard the event
keyEvent.consume();
}
}
});
txtf\u xCoord.addKeyListener(新的KeyAdapter()
{
@凌驾
public void keyTyped(KeyEvent KeyEvent)
{
如果(txtfxcoord.getText().length()<3&&keyEvent.getKeyChar()>='0'&&keyEvent.getKeyChar()您可以使用,请查看以下代码:
public class NumericVerifier extends InputVerifier {
@Override
public boolean verify(JComponent input) {
//Check type of the control
String text = "";
if(input instanceof JTextField) {
JTextField tf = (JTextField) input;
text = tf.getText().trim();
}
boolean matches = text.matches("^\\d+$");
input.setBackground( ( matches ) ? Color.WHITE : Color.RED);
return matches;
}
}
您可以使用,请查看以下代码:
public class NumericVerifier extends InputVerifier {
@Override
public boolean verify(JComponent input) {
//Check type of the control
String text = "";
if(input instanceof JTextField) {
JTextField tf = (JTextField) input;
text = tf.getText().trim();
}
boolean matches = text.matches("^\\d+$");
input.setBackground( ( matches ) ? Color.WHITE : Color.RED);
return matches;
}
}
您可以将匿名类转换为真实类,然后到处实例化该类。现在,您还可以查看JFormattedTextField
您可以将匿名类转换为真实类,然后到处实例化该类。现在,您还可以查看JFormattedTextField
- 最简单、最安全的方法是向
- 不要使用Swing JComponent,而是使用
- 在音乐中聆听音乐的人在那里
- 最简单、最安全的方法是向
- 不要使用Swing JComponent,而是使用
- 在音乐中聆听音乐的人在那里
创建一个从JTextField扩展的类,并在其中添加您的侦听器。并且在您的程序的任何地方都创建该类。@medhi-错误…您从未在Swing中使用KeyListener,尤其是在验证文本输入时。创建一个从JTextField扩展的类,并在其中添加您的侦听器。并且在您的程序的任何地方都创建该类@medhi-错了…您从未在Swing中使用KeyListener,尤其是不用于验证文本输入