1. NumberOnlyDocument.javapackage org.jr.swing.text;import javax.swing.text.*;
import java.awt.*;public class NumberOnlyDocument extends PlainDocument {
private boolean haveDot=false;
private int length=0; 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);
}
}2.JNumberTextField.javapackage org.jr.swing;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;
import java.awt.*;
import org.jr.swing.text.NumberOnlyDocument;public class JNumberTextField extends JTextField{
private int MAX,MIN;
private boolean isLimit=false;
// private boolean isFirst=true;
public JNumberTextField(int cols) {
super(cols);
}
public JNumberTextField(int cols,int max,int min) {
super(cols);
if (max>min) {
MAX=max;
MIN=min;
isLimit=true;
}
}
public void setRange(int max,int min) {
if (max>min) {
MAX=max;
MIN=min;
isLimit=true;
}
}
protected Document createDefaultModel() {
return new NumberOnlyDocument();
}}
import java.awt.*;public class NumberOnlyDocument extends PlainDocument {
private boolean haveDot=false;
private int length=0; 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);
}
}2.JNumberTextField.javapackage org.jr.swing;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;
import java.awt.*;
import org.jr.swing.text.NumberOnlyDocument;public class JNumberTextField extends JTextField{
private int MAX,MIN;
private boolean isLimit=false;
// private boolean isFirst=true;
public JNumberTextField(int cols) {
super(cols);
}
public JNumberTextField(int cols,int max,int min) {
super(cols);
if (max>min) {
MAX=max;
MIN=min;
isLimit=true;
}
}
public void setRange(int max,int min) {
if (max>min) {
MAX=max;
MIN=min;
isLimit=true;
}
}
protected Document createDefaultModel() {
return new NumberOnlyDocument();
}}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货