1. 程式人生 > >JTextField限制輸入資料型別(java GUI)

JTextField限制輸入資料型別(java GUI)

package javaBasic;

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

public class ControlClass {
	public static void main(String[] args) {
		new MyFrame1();
	}
}

class MyFrame1 extends JFrame{
	private JLabel jl;
	private JTextField tf;
	
	MyFrame1()
	{
		this.setTitle("限制鍵盤輸入資料型別");
		this.setSize(400,100);//設定視窗大小
		this.setLocationRelativeTo(null);//視窗居中顯示     #先設定大小,後設置居中,否則居中不能達到效果
		//this.setSize(new Dimension());
		this.setResizable(true);//設定視窗大小是否可改變
		
		jl = new JLabel("請用鍵盤輸入銀行號密碼(友情提示:密碼只能為數字型別)");
		tf = new JTextField(10);//建立文字域 並設定寬度(此時寬度不設也OK)
		
		jl.setBounds(100,10,100,15);
		
		tf.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent e) {
				char keyChar = e.getKeyChar();				
				if(!(keyChar >= '0' && keyChar <= '9')){
					e.consume(); //缺點,不能控制賦值黏貼的內容
				}
			}
		});
		
		this.add(jl);
		this.add(tf);
		this.setLayout(new FlowLayout());//設定佈局方式
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);//程式結束時關閉JVM
		this.setVisible(true);//顯示視窗 #做完一切工作後,再讓大作顯示出來呀			
	}
}

除錯結果如下: