java 中jtextfield访问限制_java.swing JtextField 中怎么限制只能输入数字
2016-04-05 回答
看代码:
import java.awt.borderlayout;
import javax.swing.jframe;
import javax.swing.jlabel;
import javax.swing.joptionpane;
import javax.swing.jpanel;
import javax.swing.jtextfield;
import javax.swing.swingutilities;
import javax.swing.event.caretevent;
import javax.swing.event.caretlistener;
public class main {
public static void main(string[] args) throws exception {
jframe frame = new jframe("jtextfield 只能输入中文,字母,数字");
jlabel label = new jlabel("输入:");
jtextfield textfield = new jtextfield(20);
// 当 jtextfield 中内容发生改变时触发
textfield.addcaretlistener(new textfieldinputlistener());
jpanel panel = new jpanel();
panel.add(label);
panel.add(textfield);
frame.add(panel, borderlayout.center);
frame.pack();
frame.setlocationrelativeto(null);
frame.setdefaultcloseoperation(jframe.exit_on_close);
frame.setvisible(true);
}
}
class textfieldinputlistener implements caretlistener {
@override
public void caretupdate(caretevent e) {
jtextfield textfield = (jtextfield) e.getsource(); // 获得触发事件的 jtextfield
string text = textfield.gettext();
if (text.length() == 0) {
return;
}
char ch = text.charat(text.length() - 1);
if (!(ch >= '0' && ch <= '9' // 数字
|| ch >= 'a' && ch <= 'z' // 字母
|| ch >= '\u4e00' && ch <= '\u9fa5')) { // 中文,最常用的范围是 u+4e00~u+9fa5,也有使用 u+4e00~ u+9fff 的,但目前 u+9fa6~u+9fff 之间的字符还属于空码,暂时还未定义,但不能保证以后不会被定义
joptionpane.showmessagedialog(textfield, "只能输入中文,字母,数字", "提示", joptionpane.information_message);
swingutilities.invokelater(new runnable() {
@override
public void run() {
// 去掉 jtextfield 中的末尾字符
textfield.settext(text.substring(0, text.length() - 1));
}
});
}
}
}
总结
以上是生活随笔为你收集整理的java 中jtextfield访问限制_java.swing JtextField 中怎么限制只能输入数字的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 哪里有60平米左右的迷你小别墅卖,不要小
- 下一篇: C 语言中double类型数据占字节数为