我希望 JFormattedTextField 接受任何大于 0 的十进制数,但我无法弄清楚如何使用 DecimalFormat 类来做到这一点?
此外,我将文本字段限制为 10 列。当我以编程方式设置一个超过 10 位的数字 (1.333...) 时,文本字段显示向右滚动,因此它只显示 10 个 3s,“3333333...”。我希望它显示为向左滚动,以便显示前 10 位数字,“1.333 ...”有什么建议可以在显示时强制它向左滚动吗?
我希望 JFormattedTextField 接受任何大于 0 的十进制数,但我无法弄清楚如何使用 DecimalFormat 类来做到这一点?
此外,我将文本字段限制为 10 列。当我以编程方式设置一个超过 10 位的数字 (1.333...) 时,文本字段显示向右滚动,因此它只显示 10 个 3s,“3333333...”。我希望它显示为向左滚动,以便显示前 10 位数字,“1.333 ...”有什么建议可以在显示时强制它向左滚动吗?
使用MaskFormatter
将帮助您将文本字段限制为最多允许 10 位数字。
try {
MaskFormatter format = new MaskFormatter("");
// Allows you to enter any digit greater than 0.
format.setInvalidCharacters("0");
JFormattedTextField inputField = new JFormattedTextField( format );
// Add FocusListener and onFocusLost set the caret position to the zeroth position.
inputField.setCaretPosition(0);
} catch (ParseException e) {
e.printStackTrace();
}