java JTextField 控制输入位数
我做的是计算器text=newJTextField("0");这个是建立的text还有初始值如何控制输入位数值在10位呢还可以控制小数点的位数吗用这个DocumentLi...
我做的是计算器 text = new JTextField("0"); 这个是建立的text还有初始值 如何控制输入位数值在10位呢
还可以控制小数点的位数吗
用这个DocumentListener 怎么监听呢 我只是想控制输入个数 输入到万位吧 也需要这么多代码吗 展开
还可以控制小数点的位数吗
用这个DocumentListener 怎么监听呢 我只是想控制输入个数 输入到万位吧 也需要这么多代码吗 展开
2个回答
展开全部
可以;
补充:不需要监听,JAVA已经实现了监听,你只要有下面的代码就行:
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
============================================
public class UpperCaseField extends JTextField {
public UpperCaseField(int cols) {
super(cols);
}
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
static class UpperCaseDocument extends PlainDocument {
//每次修改或增加某个字符或数字等文本框的值,会自动的调用这个方法,你可以在这个方法里对文本框的值,进行控制,效果很好,这是JDK的方法,
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
}
=================================================
public void insertString(int offs,
String str,
AttributeSet a)
throws BadLocationException向文档中插入某些内容。插入内容会导致在实际发生改变时存储写锁定,接着会向线程上抓取该写入锁定的观察者发出通知。
虽然大多数 Swing 方法不是线程安全的,但此方法是线程安全的。有关更多信息,请参阅 Threads and Swing。
指定者:
接口 Document 中的 insertString
覆盖:
类 AbstractDocument 中的 insertString
参数:
offs - 起始偏移量,该值 >= 0
str - 要插入的字符串;null/空字符串不执行任何操作
a - 插入内容的属性
抛出:
BadLocationException - 如果给定的插入位置不是文档中的有效位置
补充:不需要监听,JAVA已经实现了监听,你只要有下面的代码就行:
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
============================================
public class UpperCaseField extends JTextField {
public UpperCaseField(int cols) {
super(cols);
}
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
static class UpperCaseDocument extends PlainDocument {
//每次修改或增加某个字符或数字等文本框的值,会自动的调用这个方法,你可以在这个方法里对文本框的值,进行控制,效果很好,这是JDK的方法,
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
}
=================================================
public void insertString(int offs,
String str,
AttributeSet a)
throws BadLocationException向文档中插入某些内容。插入内容会导致在实际发生改变时存储写锁定,接着会向线程上抓取该写入锁定的观察者发出通知。
虽然大多数 Swing 方法不是线程安全的,但此方法是线程安全的。有关更多信息,请参阅 Threads and Swing。
指定者:
接口 Document 中的 insertString
覆盖:
类 AbstractDocument 中的 insertString
参数:
offs - 起始偏移量,该值 >= 0
str - 要插入的字符串;null/空字符串不执行任何操作
a - 插入内容的属性
抛出:
BadLocationException - 如果给定的插入位置不是文档中的有效位置
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询