Ich habe für ein Spiel 2 Menübuttons mit jeweils einem ActionListener.
Solve-Listener:
Control-Listener:
Ich möchte also die Schritte, die innerhalb von "Result-Control" liegen, im Solve-Listener durchgehen, die Werte speichern, bei denen die boolean Variablen true sind, und mit diesen Werten weiterarbeiten.
Ich habe bereits versucht, den Result-Control in eine externe Methode "public void control()" zu verlagern, diese Methode kann ich dann aber innerhalb der actionPerformed-Methoden nicht mehr aufrufen (NullPointerException).
Gibt es einen Weg, wie ich das vernünftig hin bekommen kann?
Und wie sage ich dem Solve-Listener, dass er bei valid-Werten aufhören soll, die Schleifen durchzugehen? Die While-Schleife muss ja wenn valid-Werte durchgegeben werden automatisch abgebrochen werden.
Solve-Listener:
Java:
// Solve-Listener
mSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
while(validrows==false||validcols==false)
{
for(int m = 0; m < field.nbCols; m++)
{
for(int n = 0; n < field.nbRows; n++)
{
for(int o = 0; o < 3; o++)
{
field.array[m][n] = o;
//Control-Listener starten
//Wenn validrows und validcols == true werden, abbrechen und die Werte merken
}
}
}
}
}
});
Control-Listener:
Java:
// Control-Listener
mControl.addActionListener(new ActionListener()
{
// Result-Control
public void actionPerformed(ActionEvent e)
{
[...]
}
});
Ich möchte also die Schritte, die innerhalb von "Result-Control" liegen, im Solve-Listener durchgehen, die Werte speichern, bei denen die boolean Variablen true sind, und mit diesen Werten weiterarbeiten.
Ich habe bereits versucht, den Result-Control in eine externe Methode "public void control()" zu verlagern, diese Methode kann ich dann aber innerhalb der actionPerformed-Methoden nicht mehr aufrufen (NullPointerException).
Gibt es einen Weg, wie ich das vernünftig hin bekommen kann?
Und wie sage ich dem Solve-Listener, dass er bei valid-Werten aufhören soll, die Schleifen durchzugehen? Die While-Schleife muss ja wenn valid-Werte durchgegeben werden automatisch abgebrochen werden.