Untuk membuat text di dalam JTextField  otomatis huruf besar (Upper Case) maupun huruf kecil (Lower Case),  ataupun Normal seperti biasa, hanya perlu meng-Override  method  insertString dan replace di kelas DocumentFilter, pada contoh dibawah  saya mebuat atribut characterCasing agar dapat dengan mudah kita set  menggunakan IDE Netbeans, jadi pada saat kita memasukkan object seperti  contoh dibawah kedalam JFrame, pada jendela properties langsung  kelihatan property characterCasing, jadi bisa langsung kita rubah  nilainya seperti NORMAL, UPPER atau LOWER langsung di jendela properties
import javax.swing.JTextField;import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
/**
*
* @author Ahmad Thahir
*/
public class tJTextField extends JTextField {
public tJTextField() {
super();
((AbstractDocument) getDocument()).setDocumentFilter(filter);
}
public enum CharacterCasing {
NORMAL, UPPER, LOWER
}
private CharacterCasing characterCasing=CharacterCasing.NORMAL;
public CharacterCasing getCharacterCasing() {
return characterCasing;
}
public void setCharacterCasing(CharacterCasing characterCasing) {
this.characterCasing = characterCasing;
}
DocumentFilter filter = new DocumentFilter() {
@Override
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
if (getCharacterCasing()==CharacterCasing.UPPER) {
string=string.toUpperCase();
} else if (getCharacterCasing()==CharacterCasing.LOWER) {
string=string.toLowerCase();
}
super.insertString(fb, offset, string, attr);
}
@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
if (getCharacterCasing()==CharacterCasing.UPPER) {
text=text.toUpperCase();
} else if (getCharacterCasing()==CharacterCasing.LOWER) {
text=text.toLowerCase();
}
super.replace(fb, offset, length, text, attrs);
}
};
}dari contoh kode diatas, kita juga  membuat type enum "CharacterCasing" dan membuat variable characterCasing  dengan type enum "CharacterCasing", ini agar kita dapat dengan mudah  mengganti nilai variable tersebut sesuai dengan nilai yang telah  disediakan dalam type enum yang bersangkutan, kode diatas sudah siap  pakai, seperti contoh dibawah :
tJTextField tJTextField1 = new tJTextField();
tJTextField1.setCharacterCasing(tJTextField.CharacterCasing.UPPER); Thanks.... 















0 komentar:
Posting Komentar
Silahkan isi komentar anda dibawah ini :