您的位置:首页 > 其它

限制JTextFiled只能输入定长或者数字

2010-11-16 14:55 134 查看
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JTextField;

/**
* 限制JTextFiled只能输入定长或者数字
* @author martin

*/
public class MyJTextField extends JTextField {
private int limit = Integer.MAX_VALUE; //最大定长数
private boolean numberOnly; //只能接受数字

public MyJTextField() {

addKeyListener(new KeyAdapter() {

@Override
public void keyTyped(KeyEvent e) {
if(getText().length() + 1 > limit) {

deleteInputChar(e);
return;
}
if (numberOnly) {
char input = e.getKeyChar();
if (!Character.isDigit(input)) {

deleteInputChar(e);
}
}
}

private void deleteInputChar(KeyEvent source) {
source.setKeyChar((char) KeyEvent.VK_CLEAR);
}
});

}

public void setMaxTextLength(int limit) {
if(limit < 0) {
return;
}
this.limit = limit;
}

public int getMaxTextLength() {
return limit;
}

public void setNumberOnly(boolean numberOnly) {
this.numberOnly = numberOnly;
}

public boolean getNumberOnly() {
return numberOnly;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: