在电话号码后添加“ - ”

时间:2011-07-26 19:51:07

标签: java

我目前正在处理从JtextField获取电话号码,我遇到的问题是输入三位数后我想在添加第三个整数后添加“ - ”然后再添加“ - ”添加第六个整数。我不确定如何做到这一点。到目前为止,我只检查数字并确保它们是数字。我很确定我应该在这里添加一些东西,

homeNum.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {
            String homeValue = homeNum.getText();
            if (e.getKeyChar() >= '0' && e.getKeyChar() <= '9' || e.getKeyChar() == '-' || e.getKeyChar() == '\b') {


                      homeNum.setEditable(true);
                        message.setText("");

        } 
            else {
                homeNum.setEditable(false);
                message.setText("* Enter only numeric digits(0-9)");

                 }

        }

我正在考虑添加类似这样的内容,但问题是如果我也想删除它。

 if(homeValue.length()==3)
    {
       homeNum.setText(homeValue+"-");
    }

非常感谢任何帮助/指示,谢谢。

3 个答案:

答案 0 :(得分:2)

您可以这样做的一种方法是:您可以监控按键的次数。当它达到3时,你将setText设置为你拥有的任何内容加上-现在还有其他事情需要考虑,比如当按下退格键时,你需要从你的计数器中减去一个而不是添加。

对3-4个特殊键执行相同操作(如按下输入时不添加任何内容)。

如果您查看SwingWorker,可以在后台执行这些操作..

祝你好运

答案 1 :(得分:0)

有很多在线教程可以帮助解决这个问题:

public class TextVerifyInputRegularExpression {

/*
   * Phone numbers follow the rule
   * [(][1-9][1-9][1-9][)][1-9][1-9][1-9][-][1-9][1-9][1-9][1-9]
   */
  private static final String REGEX = "[(]\\d{3}[)]\\d{3}[-]\\d{4}"; //$NON-NLS-1$

  private static final String template = "(###)###-####"; //$NON-NLS-1$

  private static final String defaultText = "(000)000-0000"; //$NON-NLS-1$

  public static void main(String[] args) {

可以找到教程here

答案 2 :(得分:0)

也许使用不同的文本框是个好主意,比如当你填写软件注册的密钥代码时。