TextField的响应问题

stone1982 2005-04-14 08:21:59
我想问的是在向TextField中输入字符串的时候,是哪个函数在监听这个动作,我想在对其进行操作的同时,判断输入字符串的合法性。
...全文
83 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tomcatjava 2005-04-14
下面是只输入数字的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);
}
}
  • 打赏
  • 举报
回复
stone1982 2005-04-14
谢谢楼上的,
不知道你看出来没有,我就是刚才问字符串问题的那个小子,问一下是实现ActionListener接口后,在给TextField添加addKeyListener方法吗?
  • 打赏
  • 举报
回复
飞行的兔子 2005-04-14
这个还是用KeyListener来监听按键事件比较好!
  • 打赏
  • 举报
回复
Z_Beginner 2005-04-14
你可以通过按键加上TextField的值的变化来监听。
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
申请成为版主
帖子事件
创建了帖子
2005-04-14 08:21
社区公告
暂无公告