偶一般习惯将监听器写为匿名的内部类.TextListener txtls = new TextListener(){public void textValueChanged(TextEvent e) 
{
...
}
};

解决方案 »

  1.   

    t1.addTextListener(this);t1.addTextListener(this);
    t2.addTextListener(this); 没有注册事件处理程序t1.addTextListener(new new TextListener(){public void textValueChanged(TextEvent e)
    {
    ...
    }
    });不用内部类也是一样的~
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class ZH extends JFrame implements TextListener,ActionListener
    {

    JLabel l1;
    JLabel l2;

    TextField t1;
    TextField t2;

    JButton b1;

    public ZH()
    {
    setTitle("转换");
    Container con=getContentPane();
    con.setLayout(new GridLayout(3,2));

    l1=new JLabel("原身份证号");
    l2=new JLabel("转换后的身份证号");

    t1=new TextField(20);
    t2=new TextField(20);

    con.add(l1);con.add(t1);con.add(l2);con.add(t2);
    con.add(b1);

    t1.addTextListener(this); 
    t2.addTextListener(this); setSize(300,150);
    setVisible(true);
    } public void actionPerformed(ActionEvent e)
    {
    t1.setText("");
    }

    public void textValueChanged(TextEvent e)
    {
    int len=0;
    ss=t1.getText();
    if(ss!=null)
    {
    char ch[]=ss.toCharArray();
    for(int i=0;i<=ss.length();i++)
    {
    if(ch[i]>='0'&&ch[i]<='9')
    {
    ch[len++]=ch[i];
    }
    else
    {
    break;
    }
    }
    }
    else{return;}

    } public void paint(Graphics g)
    {
    g.drawString("请输入数字",60,60); public static void main(String args[])
    {
    new ZH();
    }
    }输入非法字符后 显示提示消息 
    当输入满15个字符 就停止接受 怎么实现???
    输入数字和点按钮就报地址下标越界 为什么?
    我怎么在public void textValueChanged方法里调用paint? 用repaint()不行
      

  3.   

    for(int i=0;i<=ss.length();i++)
    应该是
    for(int i=0;i<ss.length();i++)
    就不会越界了
      

  4.   

    把接受的数字先当成字符串的形式来出来,可以用length()方法来判断是不是输入了15个了。
    我也是菜鸟,,哈哈。