как попытаться поймать исключения с помощью jtextfield? - PullRequest
0 голосов
/ 20 февраля 2019

Я делаю простой графический интерфейс, в котором пользователь должен ввести 2 случайные строки чисел, и когда нажата кнопка «Готово», он выведет эти 2 строки.Но как мне сделать это с помощью метода try-catch, чтобы пользователь мог использовать только цифры, иначе он будет ловить исключения?

Это мой код:

import java.awt.event.*;
import javax.swing.*;

public class Panel extends JPanel 
{
    private JTextField field1;
    private JTextField field2;
    private JButton button1;
    private JLabel label1;
    private JLabel label2;

    public Panel() 
    {
        label1 = new JLabel("first string: ");
        label2 = new JLabel("second string: ");
        field1 = new JTextField(38);
        field2 = new JTextField(3);
        button1 = new JButton("done");

        ButtonP buttonP = new ButtonP();
        button1.addActionListener(buttonP);

        this.add(label1);
        this.add(field1);
        this.add(label2);
        this.add(field2);
        this.add(button1);
    }

    private class ButtonP implements ActionListener 
    {   
        public void actionPerformed(ActionEvent e)  
        {
            System.out.println("String 1 " + field1.getText() + " and string 2 " + field2.getText());
        }
    }
}

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

У вас есть два варианта здесь.Первый и рекомендуемый один состоит в том, чтобы использовать JFormattedTextField , чтобы исключить вероятность получения NumberFormatException.Кроме того, он более удобен для пользователя.

Второй вариант - перехватить NumberFormatException и, когда вы его поймаете, добавить своего рода сообщение об ошибке пользователю (не так много, как пользователь).-дружелюбный) и скажи ему, чтобы дать правильный вклад.Затем он пропускает письмо, и мы возвращаемся к сообщению об ошибке.

0 голосов
/ 20 февраля 2019
//You save yor recieved string from textfield and try to convert it to an integer
//If is not convertable, it throws an exception and prints in console the error
String string1 = field1.getText();
int myInteger = 0;
try {
    myInteger = Integer.parseInt(string1);
} catch(Exception e){
    System.out.println("Invalid input. Not an integer");
    e.printStackTrace();
}

Надеюсь, это поможет.Привет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...