Beranda > Tips Java-Netbeans > Membatasi Jumlah Karakter JTextField

Membatasi Jumlah Karakter JTextField

JTextField yang disediakan oleh Java umumnya belum memiliki pembatasan jumlah karakter pada JTextField, hal ini dapat menyebabkan tidak sinkonnya apabila kita melakukan pembacaan data dari Database yang memiliki jumlah karakter. Oleh sebab itu untuk menghindari terjadi exception pada saat penyimpanan pada database maka kita sebaiknya melakukan pembatasan pada JTextField yang digunakan sesuai dengan panjang karakter dari field yang ada di database.

pembahasan kali ini adalah bagaimana kita membuat JTextField yang kita gunakan itu bisa memiliki jumlah karakter sehingga user atau pengguna hanya bisa memasukkan String yang memiliki karakter maksimum sesuai yang telah kita sediakan.

Pertama kita buat terlebih dahulu satu class JTextFieldLimit yang diextendkan dari Plain Document, dan source codenya seperti berikut ini :

import javax.swing.text.*;

public class JTextFieldLimit extends PlainDocument {
    private int limit;
    // Opsi untuk merubah ke Uppercase
    private boolean toUppercase = false;

    JTextFieldLimit(int limit) {
        super();
        this.limit = limit;
    }

    JTextFieldLimit(int limit, boolean upper) {
        super();
        this.limit = limit;
        toUppercase = upper;
    }

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

        if ((getLength() + str.length()) <= limit) {
            if (toUppercase) str = str.toUpperCase();
            super.insertString(offset, str, attr);
        }
    }
}

Setelah class tersebut dibuat, selanjutnya anda tinggal menggunakannya di class-class yang diperlukan, berikut contoh penggunaannya :

import java.awt.*;
import javax.swing.*;

public class Tester extends JApplet{
    JTextField textfield1;
    JLabel label1;

    public void init() {
        getContentPane().setLayout(new FlowLayout());
        //
        label1 = new JLabel("Maksimum 10 Karakter");
        textfield1 = new JTextField(15);
        getContentPane().add(label1);
        getContentPane().add(textfield1);
        textfield1.setDocument
                (new JTextFieldLimit(10));
    }
}
  1. Anton Hartono
    Juli 27, 2010 pukul 13:08

    Mas Budi, saya sudah membuat class JTextFieldLimit dan pada frmcoba ( form untuk testing ) dibawah initComponents(); saya tambahkan textfield1.setDocument(new JTextFieldLimit(10)); jTextfield-nya saya namakan persis sama dengan contoh, pada saat run karekternya bisa lebih dari 10 karakter, ada yang salah ???
    Thanks..

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: