column不是最大字符,是多少行的!

解决方案 »

  1.   

    这个很正常,因为jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符。
    如: column=3,则可在界面上显示3个Unicode字符,至于输入多少没有限制。
      

  2.   

    这个很正常,因为jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符。
    如: column=3,则可在界面上显示3个Unicode字符,至于输入多少没有限制。
      

  3.   

    这个很正常,因为jTextField不是限制输入多少字符。
      

  4.   

    那哪个属性是限制jTextField输入字符的。
      

  5.   

    我的配置是:C366+128+pwin98 在使用JBuild5与JBuild6时,新建一个jTextField后在
    Application1的Form1中,再设置column属性,(column是否是设置文本域允许输入最大字符的?)
    Run后jTextField 确可以输入很多.既column属性未起作用,请问个位大哥大姐这是为啥?
    若column不是设置输入最大限制的,那which属性是设置他的??
      

  6.   

    我现在还没找到,不过你可以生成TextField的子类, 然后控制其输入的长度.
      

  7.   

    下面我将我改写的TextField子类贴出来。
    注意:TextField可用JTextField替换。import java.awt.*;
    import java.awt.event.*;public class MyTextField extends TextField 
    {
          private String strTest;
          MyTextField(int n)
          { 
            super(n);
            initMyTextField();
          }
          MyTextField()
          {
            super();
            initMyTextField();
          }
          MyTextField(String s)
          {
            super(s);
            initMyTextField();
          }
          MyTextField(String s ,int n)
          {
            super(s,n);
            initMyTextField();
          }
          public void initMyTextField()
          {
            strTest=""; 
           addKeyListener(new  KeyAdapter()
                {
                   public void keyPressed(KeyEvent e)
                   {                   String s=getText();
                       //加上下面这一行,是因为如果按住一个键不放,则会产生多个keyPressed的事件
                       //而只产生一个keyReleased事件
                       if(s.length()<=getColumns()*2)
                         strTest=s;
                   }
                    public void keyReleased(KeyEvent e)
                    {
                      String s=getText();
                      if(s.length()>getColumns()*2)
                        {
                            s=strTest;
                            setText(s);
                            setCaretPosition(s.length());
                         }                           
                    }       
                    
                 });
           }}
      

  8.   

    不过注意的是,对于java中的String类来说, s.length()的长度是对于每个字符来说的,不管是否是Unicode,如:String s="abdc", s.length()=4;
    而:String s="我是谁", s.length()=3;
    上面的代码没有解决这个问题。
      

  9.   

    哦,虽然不能帮你,但是帮你UP一下!希望你能得到好的解答!
    UP! :)
      

  10.   

    jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符。
      

  11.   

    jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符。。
      

  12.   

    捕捉keyPressed事件有局限性, 如果Copy/Paste怎么辦,應當定制JTextField的Document詳見JDK API的幫助
      

  13.   

    正常,因为jTextField不是限制输入多少字
      

  14.   

    jTextField对输入文字字数没有限制,但这要取决你程序的意图.
      

  15.   

    jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符,
      

  16.   

    jTextField不限制输入多少字啊,至于有没有方法来限制,你还是查查帮助文档吧!呵呵
      

  17.   

    JDK1.4中, 多了一個JFormattedTextField好像可以解決問題