你可以自己写个ipField继承jTextField,其中要有个对输入的监听,如果不是数字,就什么也不打出,另外再加几个对其他check的监听,我想基本可以用这个思路来实现吧!呵呵!

解决方案 »

  1.   

    这里有个问题,您所说的监听器是监听字符吗?可是如果从剪贴板直接粘贴不就监视不到了吗?
    还有ip的地址分了四个部分,如果只用一个textfield,检查格式时起不是很麻烦?我原来是用了四个textfield,最后拼起来,可是输入是比较麻烦,不知怎样才能使它在输入完3位的数字后可把焦点自动移到下一栏,谢谢
      

  2.   

    那你可以在lostFocus时也来个listener呀!对!用四个field可能更好!移到下一栏用thisFocusField.setNextFocus(nextFocusField);就可以了!
      

  3.   

    首先,你可以setMaxLength(3);这样就不会有超长的数据了。
    其次,监听主要是用来监听字符的,以保证都是数字。
      

  4.   

    我想要它自动移,而不是监听到失去焦点后再判断规格是否相符再决定是否移动焦点,而是想只要text的文本改变了就判断去内容是否合法,再移动焦点,比如只要输满了3位就先看他是否合法,若是就一移动焦点,可是我不知该怎样监视文本的内容
      

  5.   

    一样的呀?你可以addKeyListener()呀!写个给你看看吧!
    SymKey lSymKey = new SymKey();
    IP1.addKeyListener(lSymKey);
    IP2.addKeyListener(lSymKey);
    IP3.addKeyListener(lSymKey);
    IP4.addKeyListener(lSymKey);class SymKey extends KeyAdapter {public void keyReleased(KeyEvent event) {
                Object obj = event.getSource();            if (obj == txtContactID) {
                    txtContactID_keyReleased();
                }
            }
        }    private void txtContactID_keyReleased() {        if (!txtContactID.getText().equals("")) {
                btnCheck.setEnabled(true);
            } else {
                btnCheck.setEnabled(false);
            }
        }
      

  6.   

    不好意思!我不太习惯在这边写程序!SymKey lSymKey = new SymKey();
    txtIP1.addKeyListener(lSymKey);
    txtIP2.addKeyListener(lSymKey);
    txtIP3.addKeyListener(lSymKey);
    txtIP4.addKeyListener(lSymKey);       class SymKey extends KeyAdapter {       public void keyReleased(KeyEvent event) {
                Object obj = event.getSource();            if (obj == txtIP1) {
                    txtIP1_keyReleased();
                } else if (obj == txtIP2) {
                    ......// 同上
                }
            }
        }    private void txtIP1_keyReleased() {        if (txtIP1.getText().length() == "3") {
                txtIP1.setNextFocus(txtIP2);        
            } 
        }这是在你的frame中的程序。
      

  7.   

    真是谢谢你,我下去会试一试。不过我刚才查了一下,JTextField好像不能直接setMaxLength(3)吧,没看到有这函数呀
      

  8.   

    呵呵!不好意思,setMaxLength()是以前我们开发时候改写JTextField时候加的方法,我想既然你要写个MyIpField类,你也可以加上这么一个方法,主要是在你的类中覆盖processKeyEvent();这个方法,其中先判断你的text内容是否到了maxLength,如果到了,consume()这个keyEvent就可以了!呵呵!