1.可以重写Document
2.button action里写table.setRowSelectionInterval(0,0) 

解决方案 »

  1.   

    第二个问题已经解决了
    第一个问题:KeyEvent事件中没有Document方法啊,能否给一个程序实例?谢谢了
      

  2.   

    jtxt.getDocument.addDocumentListener(new DocumentListener(){
      public void insertupdate(.......//在这个事件里面判断一下插入的字符是不是符合要求就行了
      ....................
    })
      

  3.   

    小妹手中的资料没有关于DocumentListener的,弄了半天也没有搞定
    哪为给提供详细代码,实现我的第一个问题,小妹不胜感激!
    能帮忙的哥哥,请到:
    http://expert.csdn.net/Expert/topic/3004/3004342.xml?temp=.4249994
      

  4.   

    JDK的dos文档里不是有关于Document的东西吗?
      

  5.   

    import java.awt.Toolkit;import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.PlainDocument;
    /**
     * <p>限制输入为数字</p>
     * @author   wolfsquare
     * @version  1.0
     * 日期       2002-03-21
     * @copyright (c) 2000-2001 wolfsquare
     * @description
     *   限制输入为数字的文本类
     *
     */
    /**
     * 限制输入为数字的文本类
     */
    public class NumberDocument extends PlainDocument {
      private final static int STRING_MAX_LEN = 255; // 最大长度
      private boolean isCanBeNegative = false; // 可以为负数
      private int len = STRING_MAX_LEN; // 当前可接受的最大长度  //变量falg的作用是,通过传入的数是正数还是负数来决定数字的位数
      //以便做到指定数字位数时,只要考虑数字的位数,而无需考虑正负号
      //所占用的位数。
      private boolean falg = false;  /**
       * 构造方法
       */
      public NumberDocument() {
      }  /**
       * 构造方法
       * @param len  限制的长度
       */
      public NumberDocument(int len) {
        this.len = len;
      }  /**
       * 可以为付数并限制长度
       * @param isCanBeNegative 是否可以为负数
       * @param len             限制的最大长度
       */
      public NumberDocument(boolean isCanBeNegative, int len) {
        this.isCanBeNegative = isCanBeNegative;
        this.len = len;
      }  /**
       * 实现的插入方法
       * @param offset  偏移
       * @param s       要接受的字符串,在拷贝粘贴时会有多个字符
       * @param attributeSet
       * @throws BadLocationException
       */
      public void insertString(int offset, String s, AttributeSet attributeSet)
        throws BadLocationException {
        try {
          if (isAllNumber(s)) {
            final int length = this.getLength();        if (s.charAt(0) == '-') {
              if (this.isCanBeNegative) {
                if (length == 0) {
                  this.len = falg ? len : (len + 1);
                  falg = true;
                  super.insertString(offset, s, attributeSet);
                }
              }
            } else {
              if (length == 0) {
                this.len = falg ? (len - 1) : len;
                falg = false;
              }          if (length < len) {
                String src = this.getText(0, length);
                Double.parseDouble(src.substring(0, offset) + s +
                  src.substring(offset, src.length()));
                super.insertString(offset, s, attributeSet);
              }
            }
          }
        } catch (Exception ex) {
          Toolkit.getDefaultToolkit().beep();
        }
      }  /**
       * 判断字符串是否全是数字
       * @param s
       * @return
       */
      private boolean isAllNumber(String s) {
        boolean ret = true;    if (s.length() > 0) {
          char[] buf = s.toCharArray();      for (int i = 0; i < buf.length; i++) {
            char c = buf[i];        if ((c < '0') || (c > '9')) {
              if ((c != '.') && (c != '-')) {
                ret = false;            break;
              }
            }
          }
        } else {
          ret = false;
        }    return ret;
      }
    }