Adityads Blogs
23:18
0
Bismillah ...
Method yang akan kita gunakan untuk membatasi inputan pada komponen JTextField adalah method setDocumentFilter() dan selanjutnya menggunakan kelas DocumentFilter serta meng-override method replace() dari kelas tersebut.
Berikut adalah contoh pembuatan methodnya:
private void triggerText(JTextField tx, int max){
        ((AbstractDocument) tx.getDocument()).setDocumentFilter(new DocumentFilter() {
            Pattern pattern = Pattern.compile("\\d");
            /* Pattern digunakan untuk memfilter jenis inputan apa yang boleh masuk
            Untuk melihat jenis regular-expression buka di https://docs.oracle.com/javase/7/docs/api/util/regex/Pattern.html
            */
            @Override
            public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
                Matcher matcher = pattern.matcher(text);// kelas Matcher digunakan untuk mencocokkan inputan pengguna dengan jenis regular-expression
                if (!matcher.matches())//jika inputan tidak cocok dengan pattern maka return;
                    return;
                
                if(tx.getText().length()>max)//jika jumlah length text melebihi ketentuan maka return;
                    return;
                super.replace(fb, offset, length, text, attrs);
            }
        });
 }    
Contoh penggunaan method diatas adalah sebagai berikut :
package az.dialog.gui;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class DemoText extends JFrame{ 
    public DemoText(){
        super("Demo Trigger Text");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,100);
        
        JTextField text = new JTextField();
        triggerText(text, 25);
        getContentPane().add(text);
    }
    
    private void triggerText(JTextField tx, int max){
        ((AbstractDocument) tx.getDocument()).setDocumentFilter(new DocumentFilter() {
            Pattern pattern = Pattern.compile("\\d");
            /* Pattern digunakan untuk memfilter jenis inputan apa yang boleh masuk
            Untuk melihat jenis regular-expression buka di https://docs.oracle.com/javase/7/docs/api/util/regex/Pattern.html
            */
            @Override
            public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
                Matcher matcher = pattern.matcher(text);// kelas Matcher digunakan untuk mencocokkan inputan pengguna dengan jenis regular-expression
                if (!matcher.matches())//jika inputan tidak cocok dengan pattern maka return;
                    return;
                
                if(tx.getText().length()>max)//jika jumlah length text melebihi ketentuan maka return;
                    return;
                super.replace(fb, offset, length, text, attrs);
            }
        });
    }    
    
    public static void main(String[]args){
        new DemoText().setVisible(true);
    }
}
Demikianlah tutorial Membatasi Jenis Inputan pada JTextField. Semoga ada manfaatnya bagi anda dan saya. Jika ada pertanyaan mengenai tutorial diatas, silahkan bertanya melalui form komentar dibawah. Kemudian jika ingin meng-update secara rutin artikel yang kami posting dari blog ini, silahkan isi email anda pada isian Follow by Email dibawah.
Terima kasih... wassalam
























![Pembuatan Form Sistem Informasi Surat Masuk dan Surat Keluar [Bagian 4.2] Pembuatan Form Sistem Informasi Surat Masuk dan Surat Keluar [Bagian 4.2]](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgK5PL2RN5Z65DEGavKOL3ppi6rdMIBFw4z4HK-suP488n0jaK5qZ8WV1qLqulOT6TFlB78cjRqwDZiGkgBwYFGiwUOjvfxkn8WWsz8bqnM4QXkzKJ_oiqb8u9Ij9FrOjKzBQHf5arzlUf/s400/intro.png)

















