格式化JTextField最多接受三位数字,但是最多可以输入1-3位数字 [英] Formatting JTextField to accept three digits at most, but anything up to 1-3 digits can be typed

查看:115
本文介绍了格式化JTextField最多接受三位数字,但是最多可以输入1-3位数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下JFormattedTextField

I have the following JFormattedTextField

try {
    MaskFormatter CabinNoTextF = new MaskFormatter("###");
    CabinNoTextF.setPlaceholderCharacter(' ');
    CabinNoTextField = new JFormattedTextField(CabinNoTextF);
    centerPanelCabin.add(CabinNoTextField);
    addCabinF.add(centerPanelCabin);
    addCabinF.setVisible(true);
} catch (Exception ex) {
}

CabinNoTextField的格式设置为仅允许在文本字段中输入三个数字.但是,我想要它,以便用户也可以输入一个数字. IE.用户可以输入1,15或100.但是使用上面的代码,该文本字段仅允许输入三个数字,如果我在文本字段中输入一个数字,它将自动清除.

CabinNoTextField is formatted to only allow three digits to be inputted within the text field. However, I want it so that the user can also enter a single digit as well. I.e. the user may enter 1,15, or 100. But with the code above, the text field only allows three digits to be entered, if I enter a single digit within the text field, it automatically clears.

我如何允许CabinNoTextField最多接受三位数字,但文本字段也将接受一位数字和两位数.

How do I allow CabinNoTextField to accept three digits at most, but the text field will accept a single digit and double digits as well.

推荐答案

使用NumberFormat

NumberFormat amountFormat = NumberFormat.getNumberInstance();
amountFormat.setMinimumIntegerDigits(1);
amountFormat.setMaximumIntegerDigits(3);
amountFormat.setMaximumFractionDigits(0);

amountField = new JFormattedTextField(amountFormat);

http://docs.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html

这篇关于格式化JTextField最多接受三位数字,但是最多可以输入1-3位数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆