有两种方法:
一、你可以判断AscII的值
二、使用格式化
一、你可以判断AscII的值
二、使用格式化
解决方案 »
- 新手写的一个冒泡排序
- 怎样用javase代码播放视频
- java 数据库编程问题:java.sql.BatchUpdateException: 列名 'col0' 无效。求帮助!!!
- 正则有啥好的?
- apache mina2 如何发送和接受 字节数组 byte[]
- 使用过google calendar api的进来看下
- 关于 java swing 中的按钮 如何实现用键盘来操作 急 !急 ! 能举个例子 更好
- Java中数组数据成员的问题????
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
- linux下java的配置问题
- 求strutc资料下载
- 高手救命,小小问题,看看就好
public void keyTyped(KeyEvent e) {
int keyCode = e.getKeyCode();
switch (keyCode) {//判断按下的是哪个键
case KeyEvent.VK_0:......
case KeyEvent.VK_9:
break;
default:
e.consume(); //关键,屏蔽掉非法输入
}
}
});
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {
if (e.getKeyChar() < '0' ||
e.getKeyChar() > '9') {
e.setKeyChar((char)0);
return;
}
}
};
your_TextField = new TextField();
your_TextField.addKeyListener(kl);
createFormatter("#####"));
* <p>Description: JNumberField 数字格式输入框</p>
* @version 1.0
*/package jujin.common.swing;import jujin.common.base.*;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;/**
* 本类为一文本输入对话框,是只充许输入数字格式的文本输入框
*/
public class JNumberField extends JTextField
implements ActionListener, FocusListener
{
/**
* 空构造函数
*/
public JNumberField()
{
this(true);
}
/**
* 带参数构造函数
* @param addAction 是否添加监听
*/
public JNumberField(boolean addAction)
{
this(0, 16, addAction);
}
/**
* 带参数构造函数
* @param declen 小数位长度
*/
public JNumberField(int decLen)
{
this(decLen, true);
} /**
* 带参数构造函数
* @param declen 小数位长度
* @param addAction 是否添加监听
*/
public JNumberField(int decLen, boolean addAction)
{
this(decLen, 16, addAction);
}
/**
* 带参数构造函数
* @param declen 小数位长度
* @param maxlen 最大长度(含小数位)
*/
public JNumberField(int decLen, int maxLen)
{
this(decLen, maxLen, true);
}
/**
* 带参数构造函数
* @param declen 小数位长度
* @param maxlen 最大长度(含小数位)
* @param addAction 是否添加监听
*/
public JNumberField(int decLen, int maxLen, boolean addAction)
{
//初始大小
setPreferredSize(new Dimension(150, 25));
setDocument(new NumberDocument(decLen, maxLen));
//右对齐
super.setHorizontalAlignment(JTextField.RIGHT);
if (addAction)
{
addActionListener(this);
}
//焦点监听
addFocusListener(this);
}
/**
* 带参数构造函数
* @param declen 输入框长度
* @param maxlen 最大长度(含小数位)
* @param minRange 最小值
* @param maxRange 最大值
* @param addAction 是否添加监听
*/
public JNumberField(int decLen, int maxLen, double minRange, double maxRange,
boolean addAction)
{
setPreferredSize(new Dimension(150, 25));
setDocument(new NumberDocument(decLen, maxLen, minRange, maxRange));
//右对齐
super.setHorizontalAlignment(JTextField.RIGHT);
if (addAction)
{
addActionListener(this);
}
//焦点监听
addFocusListener(this);
} public void actionPerformed(ActionEvent e)
{
//强制下一控件得到焦点
transferFocus();
} /**
* 实现的焦点监听器接口
*/
public void focusGained(FocusEvent e)
{
//选择所有
selectAll();
} public void focusLost(FocusEvent e)
{
} public static void main(String[] args)
{
SwingUtil swingUtil = new SwingUtil();
swingUtil.setLookAndFeel();
JFrame frame = new JFrame();
//EXIT_ON_CLOSE == 3
frame.setDefaultCloseOperation(3);
frame.setTitle("JNumberField Demo");
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(new JNumberField(), BorderLayout.CENTER);
frame.getContentPane().add(new JNumberField(10), BorderLayout.CENTER);
frame.getContentPane().add(new JNumberField(10, 16), BorderLayout.CENTER);
frame.getContentPane().add(new JNumberField(10, 16, -10, 100, false),
BorderLayout.CENTER);
frame.setSize(400, 320);
//swingUtil.setCenter(frame);
}}/**
* 数字框类
*/
class NumberDocument extends PlainDocument
{
int maxLength = 16;
int decLength = 0;
double minRange = Double.MIN_VALUE;
double maxRange = Double.MAX_VALUE;
/**
* 空构造函数
*/
public NumberDocument() {}
/**
* 带参数构造函数
* @param decLen int 小数位长度
* @param maxLen int 最大长度(含小数位)
*/
public NumberDocument(int decLen, int maxLen)
{
maxLength = maxLen;
decLength = decLen;
} /**
* 带参数构造函数
* @param decLen int 小数位长度
* @param maxLen int 最大长度(含小数位)
* @param minRange double 最小值
* @param maxRange double 最大值
*/
public NumberDocument(int decLen, int maxLen, double minRange,
double maxRange)
{
this(decLen, maxLen);
this.minRange = minRange;
this.maxRange = maxRange;
}
/**
* 带参数构造函数
* @param decLen int 小数位长度
*/
public NumberDocument(int decLen)
{
decLength = decLen;
}
/**
* 添加字符串
* @param offset - the offset into the document to insert the content >= 0
* @param s - 要插入的字串
* @param a - 联合插入内容的属性
*/
public void insertString(int offset, String s, AttributeSet a) throws
BadLocationException
{
int len = getLength();
String str = getText(0, len);
int decPos = str.indexOf(".");
if (
s.equals("F") || s.equals("f") || s.equals("D") || s.equals("d")
|| (str + s).length() > maxLength || (decPos > -1 && offset > decPos
&& ((str.substring(decPos + 1)) + s).length() > decLength)
|| (str.trim().equals("0") && !s.substring(0, 1).equals(".")
&& offset != 0) || (s.equals(".") && decLength == 0)
|| (s.indexOf(".") > -1
&& s.substring(s.indexOf(".") + 1).length() > decLength))
{
Toolkit.getDefaultToolkit().beep();
return;
}
try
{
str = str.substring(0, offset) + s + str.substring(offset, len);
if (!str.equals("-") || (str.equals("-") && minRange <= 0))
{
double d = Double.parseDouble(str);
if (d < minRange || d > maxRange)
{
throw new Exception();
}
}
}
catch (Exception e)
{
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString(offset, s, a);
}}
textField.addKeyListener(new
KeyAdapter()
{
public void keyTyped(KeyEvent event)
{
char ch=event.getKeyChar();
if(ch<'0'||ch>'9')
event.consume;
}
}
});
摘于CoreJava第五版P308
落了一对括号