58,454
社区成员
发帖
与我相关
我的任务
分享
import java.awt.TextField;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class MyTextField extends TextField implements KeyListener {
private int maxlength;
public MyTextField(int maxlength) {
this.maxlength = maxlength;
this.addKeyListener(this);
}
@Override
public void keyTyped(KeyEvent e) {
//这里根据限制要求做判断
if(this.getText().length() == this.maxlength){
//这里应该停止KeyEvent事件的分发,TextField中的内容不再变化
e.consume();
}
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
下面是测试类。
import javax.swing.JFrame;
public class Main extends JFrame {
public static void main(String[] args) {
new Main().setVisible(true);
}
private MyTextField field;
public Main(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400,300);
this.setLayout(null);
//生成一个自定义的TextField
field = new MyTextField(3);
field.setLocation(10, 10);
field.setEditable(true);
field.setSize(100, 30);
this.add(field);
}
}