Monday, August 31, 2009

Swing Validation Package with InputVerifier

Although there are multiple frameworks out there for validating user input in Swing, there is also an API in Swing called InputVerifier which is very easy to use, and extremely easy to customize.


import javax.swing.BorderFactory;
import javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;

public class InputVerifierExample extends JPanel {
private JLabel validationLabel;

public InputVerifierExample() {
DefaultFormBuilder formBuilder = new DefaultFormBuilder(new FormLayout("right:pref, 3dlu, p:g"));
formBuilder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

JTextField javaField = new JTextField();
JTextField swingField = new JTextField();
this.validationLabel = new JLabel();

javaField.setInputVerifier(new StrictInputVerifier("Java"));
swingField.setInputVerifier(new StrictInputVerifier("Swing"));

formBuilder.append("Java Field:", javaField);
formBuilder.append("Swing Field:", swingField);
formBuilder.appendParagraphGapRow();
formBuilder.append(validationLabel, 3);

add(formBuilder.getPanel());
}

private class StrictInputVerifier extends InputVerifier {
private String validString;

public StrictInputVerifier(String validString) {
this.validString = validString;
}

public boolean verify(JComponent input) {
JTextField textField = (JTextField) input;
if (validString.equals(textField.getText())) {
validationLabel.setText("");
return true;
} else {
validationLabel.setText("Field must only contain " + this.validString);
return false;
}
}
}

public static void main(String[] a){
JFrame f = new JFrame("Input Verifier Example");
f.setDefaultCloseOperation(2);
f.add(new InputVerifierExample());
f.pack();
f.setVisible(true);
}
}

0 comments:

Post a Comment

 

About

Site Info

Information Source

Academy of JAVA by Rajesh Rolen Copyright © 2009 Community is Developed by Rajesh Kumar Rolen WebSite

/* tracking code by yahoo login */