Как я могу заставить Jformattedtextfield добавлять запятые перед каждыми 3 цифрами в Java - PullRequest
1 голос
/ 15 октября 2019

У меня проблема с JFormattedTextField. Мне нужен JFormattedTextField, поэтому, когда пользователь вводит число, он разделяет число запятой
пример: тип пользователя: 1234 JFormattedTextField show 1,234
или тип пользователя: 123456 JFormattedTextField show 123,456 илитип пользователя: 1234567 JFormattedTextField show 1 234 567

Я пытаюсь использовать следующий код в KeyTypped Event
formattedTextField = new JFormattedTextField ();

    formattedTextField.setBounds(56, 159, 152, 29);


    panel_1.add(formattedTextField);

        formattedTextField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {

                  for (int i = len - 1; i >= 0; i--)                      
                  {
                      result = s.charAt(i) + result;                 
                      nDigits++;                                          
                      if (((nDigits % 3) == 0) && (i > 0))                
                      {
                          result = "," + result;
                      }
                  }

                  formattedTextField.setText(result);

});

все в порядке, но две проблемы все еще существуют 1 - дляНапример, я нажимаю 5 jformattedtextfield покажите мне 55 я нажимаю 4 это показывает 44 2 - когда я нажимаю клавишу Backspace, jformattedtextfield не удаляет число и вместо этого введите небольшой квадрат, например: я нажимаю 1 отформатированный текстовое поле покажите мне 11 я нажимаюbackspace отформатировал текстовое поле покажи мне 11 с пустым квадратом

пожалуйста, помогите мне.

спасибо всем заранее

...