TextField中进行字符的输入限制
2004-07-13 12:50
357 查看
1)java.awt.TextField 版本,我实在是想不出其他办法, 这个办法是比较低劣的:
public void setInputLimited(int min , int max TextField text){
t.addKeyListener(new java.awt.event.KeyAdapter (){
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() >max||e.getKeyCode() t.setText(t.getText().substring(0,t.getText().length() -1) );
}
}
});
}
2)javax.swing.JTextField
JTextField和TextField不一样, 他有一个setDocument(Document doc)方法, 可以来设置输入。
如
import java.awt.*;
import javax.swing.text.*;
public void setInputLimited(int min , int max,JtextField text){
text.setDocument(new NumberOnlyDocument());
}
public class NumberOnlyDocument
extends PlainDocument {
private boolean haveDot = false;
private int length = 0;
private double max = Double.MIN_VALUE, min = Double.MAX_VALUE;
public NumberOnlyDocument(double max, double min) {
if (max >= min) {
this.max = max;
this.min = min;
}
}
public void insertString(int offs, String str, AttributeSet a) throws
BadLocationException {
if (str == null) {
return;
}
char[] number = str.toCharArray();
for (int i = 0; i < number.length; i++) {
if (offs == 0) {
if (! (number[i] >= '0' && number[i] <= '9' || number[i] == '.' ||
number[i] == '-' || number[i] == '+')) {
if (offs == length - 1) {
remove(offs + i, 1);
}
else {
return;
}
}
else {
length++;
}
}
else {
if (!haveDot) {
if (! (number[i] >= '0' && number[i] <= '9' || number[i] == '.')) {
if (offs == length - 1) {
remove(offs + i, 1);
}
else {
return;
}
}
else {
if (number[i] == '.') {
haveDot = true;
}
length++;
}
}
else {
if (! (number[i] >= '0' && number[i] <= '9')) {
if (offs == length - 1) {
remove(offs + i, 1);
}
else {
Toolkit.getDefaultToolkit().beep();
return;
}
}
else {
length++;
}
}
}
}
super.insertString(offs, new String(number), a);
}
}
public void setInputLimited(int min , int max TextField text){
t.addKeyListener(new java.awt.event.KeyAdapter (){
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() >max||e.getKeyCode() t.setText(t.getText().substring(0,t.getText().length() -1) );
}
}
});
}
2)javax.swing.JTextField
JTextField和TextField不一样, 他有一个setDocument(Document doc)方法, 可以来设置输入。
如
import java.awt.*;
import javax.swing.text.*;
public void setInputLimited(int min , int max,JtextField text){
text.setDocument(new NumberOnlyDocument());
}
public class NumberOnlyDocument
extends PlainDocument {
private boolean haveDot = false;
private int length = 0;
private double max = Double.MIN_VALUE, min = Double.MAX_VALUE;
public NumberOnlyDocument(double max, double min) {
if (max >= min) {
this.max = max;
this.min = min;
}
}
public void insertString(int offs, String str, AttributeSet a) throws
BadLocationException {
if (str == null) {
return;
}
char[] number = str.toCharArray();
for (int i = 0; i < number.length; i++) {
if (offs == 0) {
if (! (number[i] >= '0' && number[i] <= '9' || number[i] == '.' ||
number[i] == '-' || number[i] == '+')) {
if (offs == length - 1) {
remove(offs + i, 1);
}
else {
return;
}
}
else {
length++;
}
}
else {
if (!haveDot) {
if (! (number[i] >= '0' && number[i] <= '9' || number[i] == '.')) {
if (offs == length - 1) {
remove(offs + i, 1);
}
else {
return;
}
}
else {
if (number[i] == '.') {
haveDot = true;
}
length++;
}
}
else {
if (! (number[i] >= '0' && number[i] <= '9')) {
if (offs == length - 1) {
remove(offs + i, 1);
}
else {
Toolkit.getDefaultToolkit().beep();
return;
}
}
else {
length++;
}
}
}
}
super.insertString(offs, new String(number), a);
}
}
相关文章推荐
- TextField中进行字符的输入限制
- 关于textfield与textview限制输入字符长度时的越界
- iOStextfield 限制输入字符长度和过滤表情符号
- 限制UIAlertView上的TextField的输入字符长度
- ios textField限制只能输入一定长度的字符
- iOS对textField进行字符长度限制的办法
- 限制UIAlertView上的TextField的输入字符长度
- textfield、 textView内容长度限制(中文输入越界)附带:textView回车效果,判断禁止字符
- textfield/textview的子类,实现功能:几种不同类型的最大输入字符串字数限制,剩余可输入字符数,emoji表情过滤
- TextField限制输入字符
- Swift 限制 TextField 输入字符数量
- 利用TextFieldDelegate代理方法 – textField:shouldChangeCharactersInRange:replacementString: 限制输入字符
- iOStextfield 限制输入字符长度和过滤表情符号 - CSDN.NET
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- extjs的textfield禁止输入某些字符
- Extjs 限制 textfield / textarea 输入字数 , 兼容 IE Firefox Chrome
- Flex中TextInput组件如何设置限制某些字符的输入
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- (转)EditText限制输入字符类型的几种方式
- iOS textfield实现一行的数字限制,超出进行弹框