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
- 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 = “abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXXYZ”;
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.
No comments:
Post a Comment