TextField的响应问题 你可以通过按键加上TextField的值的变化来监听。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个还是用KeyListener来监听按键事件比较好! 谢谢楼上的, 不知道你看出来没有,我就是刚才问字符串问题的那个小子,问一下是实现ActionListener接口后,在给TextField添加addKeyListener方法吗? 下面是只输入数字的JTextField的例子,作参考先:import javax.swing.*;import javax.swing.text.*;import java.awt.*;public class JNumberField extends JTextField{ private numDoc doc = null; public JNumberField() { super(3); setDocument( doc = new numDoc()); } public JNumberField(int maxLen) { super(); setDocument( doc = new numDoc(maxLen)); } public void setMaxLen( int maxLen ) { doc.setMaxLen( maxLen ); } public int getMaxLen() { return doc.getMaxLen(); } public static void main( String args[] ) { JFrame f = new JFrame("Only input number characters" ); f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); Container c = f.getContentPane(); JNumberField test; c.add( test = new JNumberField(),BorderLayout.NORTH ); c.add( new JNumberField(),BorderLayout.CENTER ); c.add( new JNumberField( 10 ),BorderLayout.SOUTH ); test.setMaxLen( 5 ); f.pack(); f.show(); }}class numDoc extends PlainDocument{ int maxLength = 3; public numDoc(){} public numDoc(int maxLen) { maxLength = maxLen; } public void setMaxLen( int maxLength ) { this.maxLength = maxLength; } public int getMaxLen() { return maxLength; } public void insertString( int offset,String s,AttributeSet a ) throws BadLocationException //你可以在这里进行修改以适合你的要求 { int len = getLength(); String str =getText(0,len); if ( (str+s).length() > maxLength || ( str.trim().equals("0") && !s.substring(0,1).equals(".") && offset != 0 ) ) { Toolkit.getDefaultToolkit().beep(); return; } try { Integer.parseInt( str+s ); } catch ( Exception e ) { Toolkit.getDefaultToolkit().beep(); return; } super.insertString(offset,s,a); }} java 最接近点对 栈溢出error 关于JFrame设置title的问题,帮一下下 请教izforge userpathpanel 的配置? 关于Integer.parseInt()的问题??? ip地址的正则 请大虾推荐Java用书! 编译时出现如下情况,为什么?怎么解决?谢谢!! JPanel,JFrame 设置背景图片??? 问一个简单的问题 关于j2ee得 好古老的问题,已经搜索过了!!! 为了工作,学C++还是JAVA 一个字符串比较的算发,想征求一下大家的看法!
不知道你看出来没有,我就是刚才问字符串问题的那个小子,问一下是实现ActionListener接口后,在给TextField添加addKeyListener方法吗?
import javax.swing.text.*;
import java.awt.*;public class JNumberField extends JTextField
{
private numDoc doc = null; public JNumberField()
{
super(3);
setDocument( doc = new numDoc());
}
public JNumberField(int maxLen)
{
super();
setDocument( doc = new numDoc(maxLen));
} public void setMaxLen( int maxLen ) {
doc.setMaxLen( maxLen );
} public int getMaxLen() {
return doc.getMaxLen();
} public static void main( String args[] ) {
JFrame f = new JFrame("Only input number characters" );
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Container c = f.getContentPane();
JNumberField test;
c.add( test = new JNumberField(),BorderLayout.NORTH );
c.add( new JNumberField(),BorderLayout.CENTER );
c.add( new JNumberField( 10 ),BorderLayout.SOUTH );
test.setMaxLen( 5 );
f.pack();
f.show();
}
}class numDoc extends PlainDocument
{
int maxLength = 3;
public numDoc(){} public numDoc(int maxLen)
{
maxLength = maxLen;
} public void setMaxLen( int maxLength ) {
this.maxLength = maxLength;
} public int getMaxLen() {
return maxLength;
} public void insertString( int offset,String s,AttributeSet a ) throws BadLocationException //你可以在这里进行修改以适合你的要求
{
int len = getLength();
String str =getText(0,len);
if ( (str+s).length() > maxLength
|| ( str.trim().equals("0") && !s.substring(0,1).equals(".") && offset != 0 )
)
{
Toolkit.getDefaultToolkit().beep();
return;
}
try
{
Integer.parseInt( str+s );
}
catch ( Exception e )
{
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString(offset,s,a);
}
}