Thursday, January 12, 2012

membatasi carakter yang masuk pada jTextField

Tags

kadang kala kita ketika membuat program java membutuhkan sebuah JTextField yang dibatasi, maksudnya gini, ketika user memasukan karakter pada jtextfield ketika sudah mencapai jumlah batas yang telah kita tentukan karakter yang di inputkan tidak tercetak lagi

ok langsung saja kita praktek:
1. Buatlah sebuah projek java aplication
2. Buatlah sebuah java class MaxDocument.java

package asep.max.text;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 *
 * @author asep
 */
public class MaxDocument extends PlainDocument{

    private int max;

    public MaxDocument(int max) {
        this.max = max;
    }

    public MaxDocument() {
        this(-1);
    }
  
    @Override
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
        if(this.max==-1){
            super.insertString(offs, str, a);
        }else{
            int panjangYangMasuk=str.length();
            int panjangText=getLength();
            if((panjangText+panjangYangMasuk)>this.max){
                //text tidak dimasukan
              
            }else{
                super.insertString(offs, str, a);
            }
        }     
    }
  
}
3. Buatlah jFrame sbb:
4. Lalu edit kode berikut:

public class Form extends javax.swing.JFrame {

    /** Creates new form Form */
    public Form() {
        initComponents();
        MaxDocument document=new MaxDocument(10);
        txtNama.setDocument(document);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
lalu jalankan program,
maka jumlah carakter akan dibatasi 10 carakter saja

2 comments


EmoticonEmoticon