怎样使得JTextFeild只能输入ip地址 你可以自己写个ipField继承jTextField,其中要有个对输入的监听,如果不是数字,就什么也不打出,另外再加几个对其他check的监听,我想基本可以用这个思路来实现吧!呵呵! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这里有个问题,您所说的监听器是监听字符吗?可是如果从剪贴板直接粘贴不就监视不到了吗?还有ip的地址分了四个部分,如果只用一个textfield,检查格式时起不是很麻烦?我原来是用了四个textfield,最后拼起来,可是输入是比较麻烦,不知怎样才能使它在输入完3位的数字后可把焦点自动移到下一栏,谢谢 那你可以在lostFocus时也来个listener呀!对!用四个field可能更好!移到下一栏用thisFocusField.setNextFocus(nextFocusField);就可以了! 首先,你可以setMaxLength(3);这样就不会有超长的数据了。其次,监听主要是用来监听字符的,以保证都是数字。 我想要它自动移,而不是监听到失去焦点后再判断规格是否相符再决定是否移动焦点,而是想只要text的文本改变了就判断去内容是否合法,再移动焦点,比如只要输满了3位就先看他是否合法,若是就一移动焦点,可是我不知该怎样监视文本的内容 一样的呀?你可以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); } } 不好意思!我不太习惯在这边写程序!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中的程序。 真是谢谢你,我下去会试一试。不过我刚才查了一下,JTextField好像不能直接setMaxLength(3)吧,没看到有这函数呀 呵呵!不好意思,setMaxLength()是以前我们开发时候改写JTextField时候加的方法,我想既然你要写个MyIpField类,你也可以加上这么一个方法,主要是在你的类中覆盖processKeyEvent();这个方法,其中先判断你的text内容是否到了maxLength,如果到了,consume()这个keyEvent就可以了!呵呵! 这代码为什么会出现异常? java 写excel 文件问题;答完立刻给分 java 中Integer型 判断,求高手解 求助:怎么读取word中表格的书签? 编译运行成功,但是界面邮编的JTable无法显示【附代码】 请教高手!!!(关于输入输出流) 关于重写equals方法 怎样固定JTabel中的列(column),而不让客户移动?高手快来!!! javamail中如何收到21cn邮箱的发件箱及草稿箱的信,请问文件夹是名字是什么? swt中自动换行的问题 请帮帮忙,在用Socket进行传数据时,如何才能读出我发送的二进制流,并以二进制显示出来? 请教大家一个问题
还有ip的地址分了四个部分,如果只用一个textfield,检查格式时起不是很麻烦?我原来是用了四个textfield,最后拼起来,可是输入是比较麻烦,不知怎样才能使它在输入完3位的数字后可把焦点自动移到下一栏,谢谢
其次,监听主要是用来监听字符的,以保证都是数字。
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);
}
}
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中的程序。