java JTextField 控制输入位数

我做的是计算器text=newJTextField("0");这个是建立的text还有初始值如何控制输入位数值在10位呢还可以控制小数点的位数吗用这个DocumentLi... 我做的是计算器 text = new JTextField("0"); 这个是建立的text还有初始值 如何控制输入位数值在10位呢
还可以控制小数点的位数吗
用这个DocumentListener 怎么监听呢 我只是想控制输入个数 输入到万位吧 也需要这么多代码吗
展开
 我来答
怀新垒fb
2009-04-23 · TA获得超过378个赞
知道小有建树答主
回答量:391
采纳率:100%
帮助的人:363万
展开全部
可以;
补充:不需要监听,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 - 如果给定的插入位置不是文档中的有效位置
百度网友012e1acbd
2009-04-25 · 超过13用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:0
展开全部
给它个double
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式