English French German Spain Italian Russian Portuguese Japanese Korean Chinese Simplified

Join The Community

Buy and sell Text Links Premium WordPress Themes

Januari 08, 2014

Membuat JTextfield di JAVA yang CumaBisa Menerima Inputan Angka

Dalam pemrograman java seorang programmer dituntut untuk bisa membuat sendiri sesuatu yangbaru, oprek-oprek lah segala macam. salah satunyayaitu melakukan validasi angka pada JTextfield. Kalo cuma validasi sebenarnya bisa dilakukan dengan menggunakan JformattedTextField, namun jika menggunakan JFormattedTextField validasi akan dilakukan apabila telah melakukan aksi. Permasalahannya bagaimana membuat validasi JtextField pada saat melakukan pengetikan?

Berikut kode java beans yang saya dapatkan :


package incl;

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

/**
 * A JTextField that accepts only integers.
 *
 * @author David Buzatto
 */
public class IntegerField extends JTextField {

    public IntegerField() {
        super();
    }

    public IntegerField( int cols ) {
        super( cols );
    }

    @Override
    protected Document createDefaultModel() {
        return new UpperCaseDocument();
    }

    static class UpperCaseDocument extends PlainDocument {

        @Override
        public void insertString( int offs, String str, AttributeSet a )
                throws BadLocationException {

            if ( str == null ) {
                return;
            }

            char[] chars = str.toCharArray();
            boolean ok = true;

            for ( int i = 0; i < chars.length; i++ ) {

                try {
                    Integer.parseInt( String.valueOf( chars[i] ) );
                } catch ( NumberFormatException exc ) {
                    ok = false;
                    break;
                }


            }

            if ( ok )
                super.insertString( offs, new String( chars ), a );

        }
    }

}


Source github: Klik disini

Artikel Terkait: