jump to navigation

jTextFilter untuk membatasi karakter di jTextField 06/07/2009

Posted by suretianto in Java.
Tags: , ,
trackback

masih berkutat di jTextField, disini saya membuat contoh untuk membatasi hanya karakter tertentu saja yang bisa di input kan ke jTextField, misal hanya karakter angka saja atau hanya karakter huruf saja, atau karakter yang lain nya.

buat lah form seperti ini dengan netbean anda, disini saya memberi nama dengan textFilter.java

textFilter

ganti nama variable nya

  • jTextField1 = textAngka
  • jTextField2 = textHuruf

lalu buat lah class JTextFilter seperti di bawah ini

class JTextFieldFilter extends PlainDocument {

public static final String numeric = “0123456789”;
public static final String huruf = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXXYZ”;
protected String acceptedChars = null;
protected boolean negativeAccepted = false;

public JTextFieldFilter(String acceptedchars) {
acceptedChars = acceptedchars;
}

public void setNegativeAccepted(boolean negativeaccepted) {
if (acceptedChars.equals(numeric) || (acceptedChars.equals(huruf))){
negativeAccepted = negativeaccepted;
acceptedChars += “-“;
}

}

@Override
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null)
return;

for (int i = 0; i < str.length(); i++) {
if (acceptedChars.indexOf(str.valueOf(str.charAt(i))) == -1)
return;
}

if (negativeAccepted && str.indexOf(“-“) != -1) {
if (str.indexOf(“-“) != 0 || offset != 0) {
return;
}
}

super.insertString(offset, str, attr);
}
}

dan sekarang tambah kan syntax berikut di bawah initComponents();

textAngka.setDocument(new JTextFieldFilter(JTextFieldFilter.numeric));
textHuruf.setDocument(new JTextFieldFilter(JTextFieldFilter.huruf));

selamat mencoba, semoga bermamfaat bagi yang baru mempelajari java seperti saya.

download sourcecode disini

Comments»

1. erick - 20/10/2010

ituh kalo kita input huruf bisa muncul gk d textfieldnya?

2. Saksomo Herwijaya - 20/10/2010

mantap bos, thx for the tutorialnya


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

%d bloggers like this: