Не правильный ввод в текстовое поле JTextField - Java
Формулировка задачи:
Ребята помогите решить проблему. У меня есть два текстовых поля JTextField, куда вводятся цифры и кнопка JButton, которая эти цифры, например, суммирует. Как сделать так, чтобы например, если пользователь не заполнил одно или два текстовых поля и нажал кнопку, не было ошибки, а просто выскакивает окно с надписью "не правильный ввод!", и программа не продолжалась выполнятся далее, пока пользователь не ведет данные в текстовые поля???
Решение задачи: «Не правильный ввод в текстовое поле JTextField»
textual
Листинг программы
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import java.util.Arrays;
- public class TestGUI {
- public static void main(String[] args) {
- //создаём фрэйм
- JFrame frame = new JFrame("TestGUI");
- frame.setSize(300, 300);
- frame.setLayout(null);
- frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
- frame.setLocationRelativeTo(null);
- //создаём TextField
- JTextField edit = new JTextField();
- edit.setBounds(100, 100, 100, 25);
- edit.setBackground(Color.pink);
- edit.select(0,0);
- frame.add(edit);
- frame.setVisible(true);
- edit.addKeyListener(new KeyAdapter() {
- @Override
- public void keyTyped(KeyEvent e) {
- super.keyTyped(e);
- char key = e.getKeyChar();
- if (!isCorrectKey(edit, key)) {
- e.consume();
- }
- }
- });
- }
- public static boolean isCorrectKey(JTextField edit, char key) {
- double number = 0;
- if (key == '.' || Character.isDigit(key) == true){
- try {
- number = Double.parseDouble(edit.getText() + key);
- }
- catch (NumberFormatException e) {
- }
- if (number == 0) return false;
- else if (number > 15) return false;
- else {
- String strTemp = edit.getText() + key;
- String[] strArrayTemp = strTemp.split("[.]");
- if (strArrayTemp.length == 2 && strArrayTemp[1].length() > 3) return false;
- else return true;
- }
- }
- else if (key == 8 || key == KeyEvent.VK_DELETE){
- if (edit.getText().length() != 0 && Double.parseDouble(edit.getText()) > 15){
- edit.setText("15");
- return true;
- }
- else return false;
- }
- else return false;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д