Membatasi Panjang Karakter Input pada Java

/*
 * program pendukung
 * nama : batasPanjangInput.java
 * Deskripsi : membatasi panjang input pada field maksimal 5 karakter menggunakan PlainDocument
 * E-mail : angga.sub@gmail.com
 */
package latihan;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;

/**
 *
 * @author zu
 */
public class batasPanjangInput extends JFrame {
    //deklarasi komponen
    JLabel ket=new JLabel();
    JLabel ket1=new JLabel();
    JLabel linput=new JLabel("Input");
    JTextField tinput=new JTextField();
    /**
     * method main
     * @param args:arguments
    */
    public static void main(String[]args){
        batasPanjangInput batas=new batasPanjangInput();
        batas.setSize(300, 250);
        Dimension layar=Toolkit.getDefaultToolkit().getScreenSize();
        int l=(layar.width- batas.getSize().width)/2;
        int t=(layar.height- batas.getSize().height)/2;
        batas.setLocation(l, t);
        batas.setResizable(false);
        batas.setVisible(true);
    }
    /**
     * method konstruktor batasPanjangInput
     * berisi pembuatan komponen dan penambahan actionListener
    */
     public batasPanjangInput(){
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.getContentPane().setLayout(null);
         this.setTitle("Membatasi Panjang Karakter Input");
         ket.setFont(new Font("Arial",1,12));
         ket.setText("Panjang maksimal input adalah 5");
         ket.setBounds(new Rectangle(50,20,250,20));
         ket1.setFont(new Font("Arial",1,12));
         ket1.setText("Tekan tombol Enter untuk memproses");
         ket1.setBounds(new Rectangle(40,50,280,20));
         linput.setRequestFocusEnabled(true);
         linput.setBounds(new Rectangle(20,100,50,20));
         tinput.setBounds(new Rectangle(80,100,180,20));
         //mengatur batas maksimal input 5 karakter
         tinput.setDocument(new bacaInput((byte)5).getFilter());
         tinput.addKeyListener(new KeyAdapter()
         {
             public void keyPressed(KeyEvent ke)
             {
                 int nEnter=ke.VK_ENTER;
                 int kode=ke.getKeyCode();
                 if(kode==nEnter)
                 {
                     JOptionPane.showMessageDialog(null, "Anda tidak bisa "
                             + "memasukkan lebih dari 5 karakter"+"\nbatasPanjangInput sukses...");
                 }
             }
         });
         this.getContentPane().add(ket,null);
         this.getContentPane().add(ket1,null);
         this.getContentPane().add(linput,null);
         this.getContentPane().add(tinput,null);
     }
     /**
      * class bacaInput
      * digunakan untuk membuat class membatasi input pada field terdiri dari 2 method : bacaPanjangInput()
      * dan getFilter()
     */
     class bacaInput
     {
     byte length;
     PlainDocument filter;
     /**
      * method bacaInput()
      * membuat instance dari bacaInput
     */
     public bacaInput(byte length)
     {
         this.length=length;
     }
     /**
      * method getFilter()
      * dipakai untuk mengeset dan mendapatkan filter
      * @return mengembalikan filter bertipe PlainDocument
     */
     public PlainDocument getFilter()
     {
         filter=new PlainDocument()
         {
             public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
             {
                 int x=tinput.getText().length();
                 if(x<length)
                 {
                     super.insertString(offs,str,a);
                 }
             }
         };
         return filter;
     }
     }
}

SHARE

Milan Tomic

Hi. I’m Designer of Blog Magic. I’m CEO/Founder of ThemeXpose. I’m Creative Art Director, Web Designer, UI/UX Designer, Interaction Designer, Industrial Designer, Web Developer, Business Enthusiast, StartUp Enthusiast, Speaker, Writer and Photographer. Inspired to make things looks better.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar