我目前正在从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时,将setText设置为所存在的值加上一个-现在,还有其他需要考虑的事情,例如在按下退格键时,需要从计数器中减去一个而不是加一个。

对大约3-4个特殊键进行相同的操作(例如按Enter键时不添加任何内容)。

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

祝好运

09-16 03:13