Untuk bisa menangani input yang tidak sesuai maka kita buat dulu class berikut:
/**
* FILTER TEST
* OLEH RACHMAD HW email: rac3_hw@yahoo.com blog: rachmad-hw.blogspot.com
*/
import javax.swing.text.*;
import java.util.regex.*;
import javax.swing.JOptionPane;
/**
*
* @author RAHW
*/
public class FilterText extends PlainDocument {
Pattern pattern;
Matcher sama;
public FilterText () { super(); }
public FilterText (AbstractDocument.Content c) { super(c); }
public FilterText (AbstractDocument.Content c, String p) {
super (c);
setPatternByString (p);
}
public FilterText (String p) {
super();
setPatternByString (p);
}
public void setPatternByString (String p) {
filter = p;
Pattern pattern = Pattern.compile (p);
// CEK APAKAH INPUT SESUAI DENGAN PATTERN
// DAN MENGAHAPUS YANG TIDAK SESUAI
try {
sama = pattern.matcher(getText(0, getLength()));
//System.out.println (“cek apakah sama ” + getText (0, getLength()));
if (! sama.matches()) {
System.out.println (“Input Tidak Sesuai”);
JOptionPane.showMessageDialog(null, “Input Tidak Sesuai dengan –> ” + filter);
remove (0, getLength());
}
} catch (BadLocationException ble) {
ble.printStackTrace(); // impossible?
}
}
public Pattern getPattern() { return pattern; }
@Override
public void insertString (int offs, String s, AttributeSet a)
throws BadLocationException {
// consider whether this insert will match
String proposedInsert =
getText (0, offs) +
s +
getText (offs, getLength() – offs);
if (sama != null) {
sama.reset (proposedInsert);
if (! sama.matches()) {
System.out.println (“Input Tidak Sesuai”);
JOptionPane.showMessageDialog(null, “Input Tidak Sesuai dengan –> ” + filter);
return;
}
}
super.insertString (offs, s, a);
}
String filter;
}
kemudian kita set pada JTextField yang akan kita batasi inputnya, berikut perintahnya:
FilterText ft =new FilterText() ;
ft.setPatternByString(“[0-9]*”);
[0-9]* merupakan batasan input yang hanya memperbolehkan input berupa angka
[a-z]* merupakan batasan input yang hanya memperbolehkan input berupa huruf kecil
[A-Z]* merupakan batasan input yang hanya memperbolehkan input berupa huruf besar
http://rachmad-hw.blogspot.com/2009/02/pemograman-java-membuat-valid-text.html