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);//显示窗口 #做完一切工作后,再让大作显示出来呀
}
}
调试结果如下: