这个问题已经问了多遍了:
Swing的设计采用MVC设计模式,所以只要控制‘Model'就行了:
下面的组件 ValidateTextField 可以实现你要的功能:
class ValidateTextField extends JTextField{
ValidateTextField(int size){
super(size);
}
protected Document createDefaultModel(){
return new ValidateDocument();
}
}
class ValidateDocument extends PlainDocument{
public void insertString(int offset, String str, AttributeSet a)
throws BadLocationException{
if(str.charAt(0)>=(char)'0'&&str.charAt(0)<=(char)'9')
super.insertString(offset, str, a);
}
}
Swing的设计采用MVC设计模式,所以只要控制‘Model'就行了:
下面的组件 ValidateTextField 可以实现你要的功能:
class ValidateTextField extends JTextField{
ValidateTextField(int size){
super(size);
}
protected Document createDefaultModel(){
return new ValidateDocument();
}
}
class ValidateDocument extends PlainDocument{
public void insertString(int offset, String str, AttributeSet a)
throws BadLocationException{
if(str.charAt(0)>=(char)'0'&&str.charAt(0)<=(char)'9')
super.insertString(offset, str, a);
}
}
解决方案 »
- this所代表对象的问题
- 请问这段小程序里repaint-update-paint是怎么调用的?
- getHibernateTemplate()中save 与 persist的异同?
- 哪位帮我看一下为什么窗口中的组件不显示?谢谢!
- jvm和jre的区别?(进者有分,除非额满)
- 这段代码为什么没有输出?
- 关于 ObjectInputStream 和 ObjectOutputStream 在网络的问题 ? 急急 !
- 一个新人的问题!!!!!!!!!!!!
- together6.0 license?
- 哪位对串列认识比较深,请谈谈心得吧
- How to deploy ear file with command line utility?
- c++程序与java程序之间交换数据--发挥你的聪明才智的问题!
经典的方法是控制其document对象
jdk1.4里可以用JFormattedTextField