(Nie)Zamykanie programu

0

Mam taki problem mianowicie:
Użytkownik wprowadza dane w domyśle powinna to być liczba całkowita, no ale jeśli podaje jakiegoś śmiecia trafia to do bloku catch i tu się rodzi moje pytanie.
Jak przerwać działanie programu w catch tak by "dalej już nie szedł" by: np: nie próbował mi robić tablicy o np rozmiarze -2.Ale i tak by okienko programu nie zamykało się.Da się jakoś może zrestartować program od nowa? Czy coś w tym stylu?

1

Do takich rzeczy możesz stosować pętlę while/do-while która będzie się powtarzała dopóki użytkownik nie wprowadzi prawidłowych danych.

0

Tak jak kolega wyżej napisał. Dajesz pętle while. I tutaj dwa rozwiązania. Albo dajesz wszystko do bloku try i to co jest po tym co rzuci wyjątek się nie wykona albo do try dajesz tylko to co może rzucić wyjątek a w bloku catch piszesz continue.

0

może wstawię kod

public void actionPerformed(ActionEvent e) {
        Object source = e.getSource(); // zródło skąd mamy akcję

        if (source == bOK) {
            try {
                zakres = Integer.parseInt(tZakres.getText()); // pobieram z okienka Zakres jaki mamy
                if (zakres < 2) {
                    jWyniki.setText("Podano niepoprawną wartość zakresu poszukiwania liczb pierwszych!");
                    System.exit(1);
                }
            } catch (NumberFormatException ex) {
                jWyniki.setText("Nieprawidłowa dana");

                System.exit(1);

            } catch (ArrayIndexOutOfBoundsException ex2) {
                jWyniki.setText("Nie wprowadzono żadnych parametrów!");
                System.exit(1);
            }
            LiczbyPierwsze p = new LiczbyPierwsze(zakres);

            try {
                parametry = Integer.parseInt(tParametry.getText()); // pobieram z okienka Zakres jaki mamy
                if (parametry < 0) {
                    jWyniki.setText("Niepoprawna ilośc parametów!");
                    System.exit(0);
                }
            } catch (NumberFormatException ex) {
                jWyniki.setText("Nieprawny zapis parametrów");
                System.exit(0);
            }

Mam dwa okienka tekstowe Zakres i Parametry po wpisaniu obu wciska się przycisk OK i nie wiem jak wyczyścić stare pole z napisem Zakresu (tZakres) bądź parametrami (tParamery)
Próbowałem tutaj while wrzucić while wg porad ale nie idzie im to dobrze
Może powinienem dodać słuchaczy również do tZakres oraz tParametry? Ponieważ mam tylko jednego słuchacza od bOK

Potrzeba mi poprawnego wprowadzonego zakresu ponieważ momencie gdy tworzę obiekt

LiczbyPierwsze p = new LiczbyPierwsze(zakres)

tworzona jest tablica liczb pierwszych do danego przedziału którym jest zmienna zakres

1 użytkowników online, w tym zalogowanych: 0, gości: 1