私はJavaスイングを学んでいます。JComboBox
さまざまな水深を選択するための編集可能なものと、JTextField
携帯電話番号を受け入れるための編集可能なものがあります。私の質問は、ユーザーがこれら2つのフィールドに数字のみを入力するように制限するにはどうすればよいですか。また、携帯電話番号の文字入力の最大数を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 に答える