Wykonywanie kodu po zamknięciu okienka ERROR_MESSAGE

0

W klasie Main, w metodzie, przed dalszym kodem mam wywołanie innej klasy, sprawdzającej czy spełniony jest warunek. Jeśli warunek nie jest spełniony ma wykonać się dalszy kod z metody klasy Main. Jeśli warunek jest spełniony ma pojawić się okienko ERROR_MESSAGE i chciałbym, żeby w takim przypadku nie wykonał się dalszy kod z metody. Niestety po zamknięciu okienka błędu ten kod się wykonuje.
Jaka jest przyczyna?

0
Jaka jest przyczyna?

Błędny kod.

0

:) Domyślam się, że kod jest błędny.
W klasie sprawdzającej, w ifie, w którym wywołuję okienko błędu, nie dałem return, więc wydawało mi się, że po zamknięciu okienka nie powinien wykonać się dalszy kod. Czy kliknięcie OK, zamykającego okienko, automatycznie powoduje dalsze wykonywanie kodu?

0

Pokaż kod.

0

Może pokażę na takim prostym przykładzie, który ukazuje, o co chodzi.

public class Test
{ 
	ArrayList<Integer> listaCyfr;
	int cyfra;
	
    public static void main(String[] args)
    {
    	Test test = new Test();
        test.wykonaj();
    }    
    
    public void wykonaj()
    {
    	Sprawdzanie sprawdzanie = new Sprawdzanie(this);    	
    	listaCyfr = new ArrayList<Integer>();
    	listaCyfr.add(2);
    	
    	cyfra = 1;
    	sprawdzanie.dzialaj();
    	System.out.println(cyfra);
    	cyfra = 2;
    	sprawdzanie.dzialaj();
    	System.out.println(cyfra);
    	cyfra = 3;
    	sprawdzanie.dzialaj();
    	System.out.println(cyfra);
    }
}
public class Sprawdzanie
{ 
	Test test;
	
	public Sprawdzanie(Test test)
	{
		this.test = test;
	}
    
    public void dzialaj()
    {
       if (test.listaCyfr.indexOf(test.cyfra)!=-1)
       {
    	  JOptionPane.showMessageDialog(null, "Błąd.\nCyfra znajduje się w listaCyfr.", "Błąd", JOptionPane.ERROR_MESSAGE);
       }
       else if (test.listaCyfr.indexOf(test.cyfra)==-1)
       {
    	  return;
       }
    }
}

W założeniu, jeśli cyfra, która ma się wyświetlić, znajduje się w listaCyfr, wtedy powinno wyskoczyć okienko błędu i zatrzymać się dalsze wykonywanie kodu. Także po zamknięciu okienka.

0
    public boolean dzialaj()
    {
       if (test.listaCyfr.indexOf(test.cyfra) >= 0)
       {
          JOptionPane.showMessageDialog(null, "Błąd.\nCyfra znajduje się w listaCyfr.", "Błąd", JOptionPane.ERROR_MESSAGE);
          return false;
       }
       else
       {
          return true;
       }
    }

    public void wykonaj()
    {
        Sprawdzanie sprawdzanie = new Sprawdzanie(this);        
        listaCyfr = new ArrayList<Integer>();
        listaCyfr.add(2);

        cyfra = 1;
        if(!sprawdzanie.dzialaj())
        {
            return;
        }
       ...
0

W podanym przeze mnie przykładzie, okienko błędu miało wyskakiwać, gdy cyfra znajduje się w listaCyfr, ale dla zrozumienia sposobu nie miało to znaczenia. Dzięki za wyjaśnienie, zrozumiałem.

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