TextField的响应问题

stone1982 2005-04-14 08:21:59
我想问的是在向TextField中输入字符串的时候,是哪个函数在监听这个动作,我想在对其进行操作的同时,判断输入字符串的合法性。
...全文
129 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的值的变化来监听。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧