关于 JTextField 和 JTable 的2个小问题 请帮忙 1.可以重写Document2.button action里写table.setRowSelectionInterval(0,0) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第二个问题已经解决了第一个问题:KeyEvent事件中没有Document方法啊,能否给一个程序实例?谢谢了 jtxt.getDocument.addDocumentListener(new DocumentListener(){ public void insertupdate(.......//在这个事件里面判断一下插入的字符是不是符合要求就行了 ....................}) 小妹手中的资料没有关于DocumentListener的,弄了半天也没有搞定哪为给提供详细代码,实现我的第一个问题,小妹不胜感激!能帮忙的哥哥,请到:http://expert.csdn.net/Expert/topic/3004/3004342.xml?temp=.4249994 JDK的dos文档里不是有关于Document的东西吗? 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; }} java 通过代理方位外部网?(通过java的URL来访问外网) 请教JAVA的引用问题 请问"断言"怎么用啊?? 如何从文件中导入树? 搞了两年多java了,结果今天才发现,实在是羞愧得很呀 求个eclipse下载链接 关于“组织”和“继承”的问题 初学者,问大家几个问题?? java applet为什么运行不了? 请问哪里有 VisualCafe 4 下载??? 谁有<java$XML>中文版的电子书! 关于tree的简单的问题
第一个问题:KeyEvent事件中没有Document方法啊,能否给一个程序实例?谢谢了
public void insertupdate(.......//在这个事件里面判断一下插入的字符是不是符合要求就行了
....................
})
哪为给提供详细代码,实现我的第一个问题,小妹不胜感激!
能帮忙的哥哥,请到:
http://expert.csdn.net/Expert/topic/3004/3004342.xml?temp=.4249994
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;
}
}