Не правильный ввод в текстовое поле JTextField - Java

Узнай цену своей работы

Формулировка задачи:

Ребята помогите решить проблему. У меня есть два текстовых поля JTextField, куда вводятся цифры и кнопка JButton, которая эти цифры, например, суммирует. Как сделать так, чтобы например, если пользователь не заполнил одно или два текстовых поля и нажал кнопку, не было ошибки, а просто выскакивает окно с надписью "не правильный ввод!", и программа не продолжалась выполнятся далее, пока пользователь не ведет данные в текстовые поля???

Решение задачи: «Не правильный ввод в текстовое поле JTextField»

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.KeyAdapter;
  4. import java.awt.event.KeyEvent;
  5. import java.util.Arrays;
  6.  
  7. public class TestGUI {
  8.     public static void main(String[] args) {
  9.  
  10.         //создаём фрэйм
  11.         JFrame frame = new JFrame("TestGUI");
  12.         frame.setSize(300, 300);
  13.         frame.setLayout(null);
  14.         frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  15.         frame.setLocationRelativeTo(null);
  16.  
  17.  
  18.  
  19.         //создаём TextField
  20.         JTextField edit = new JTextField();
  21.         edit.setBounds(100, 100, 100, 25);
  22.         edit.setBackground(Color.pink);
  23.         edit.select(0,0);
  24.         frame.add(edit);
  25.  
  26.         frame.setVisible(true);
  27.  
  28.         edit.addKeyListener(new KeyAdapter() {
  29.             @Override
  30.             public void keyTyped(KeyEvent e) {
  31.                 super.keyTyped(e);
  32.                 char key = e.getKeyChar();
  33.                 if (!isCorrectKey(edit, key)) {
  34.                     e.consume();
  35.                 }
  36.             }
  37.         });
  38.  
  39.     }
  40.  
  41.  
  42.     public static boolean isCorrectKey(JTextField edit, char key) {
  43.         double number = 0;
  44.         if (key == '.' || Character.isDigit(key) == true){
  45.             try {
  46.                 number = Double.parseDouble(edit.getText() + key);
  47.             }
  48.             catch (NumberFormatException e) {
  49.  
  50.             }
  51.             if (number == 0) return false;
  52.             else if (number > 15) return false;
  53.             else {
  54.                 String strTemp = edit.getText() + key;
  55.                 String[] strArrayTemp = strTemp.split("[.]");
  56.                 if (strArrayTemp.length == 2 && strArrayTemp[1].length() > 3) return false;
  57.                 else return true;
  58.             }
  59.         }
  60.         else if (key == 8 || key == KeyEvent.VK_DELETE){
  61.             if (edit.getText().length() != 0 && Double.parseDouble(edit.getText()) > 15){
  62.                 edit.setText("15");
  63.                 return true;
  64.             }
  65.             else return false;
  66.         }
  67.         else return false;
  68.     }
  69. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы