/*
* 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;
}
}
}
* 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;
}
}
}
0 komentar:
Posting Komentar