Pemograman JAVA (membuat Valid text dengan JTextField)


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

Advertisements

One thought on “Pemograman JAVA (membuat Valid text dengan JTextField)

  1. kl membuat inputtext yang langsung merubah huruf yg kita ketik menjadi huruf besar semua misalnya, bagaimana bang?….saya lg buat input form
    thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s