我正在学习java swing。有一个可编辑JComboBox
的用于选择不同的水深和一个JTextField
接受手机号码。我的问题是如何限制用户在这两个字段中仅输入数字,以及如何限制字符输入的最大数量,例如手机号码不超过 10 个?这些方法是否适用于这些要求,或者我需要自己定义它们?在此先感谢您的帮助。
问问题
1912 次
2 回答
4
使用类似的JFormattedTextField
东西:
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("JFormattedTextField Example");
MaskFormatter fmt = null;
// A phone number 10 digits
try {
fmt = new MaskFormatter("(###)-###-####");//brackets () are optional just there for my pref
fmt.setPlaceholderCharacter('*');//set place holder for the empty digits of the number
} catch (java.text.ParseException e) {
}
JFormattedTextField tft1 = new JFormattedTextField(fmt);
frame.add(tft1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
});
}
这会自动具有您想要的属性,它只接受指定格式的数字查看文档以获取更多信息:JFormattedTextField
于 2012-09-06T10:27:37.013 回答
0
如何限制用户在电话文本字段中输入数字以外的字符
TF1.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
char k=arg0.getKeyChar();
if (!(k>='0' && k<='9'))
arg0.consume();
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
});
于 2012-09-06T10:43:46.520 回答