T
Taranis
Gast
Hallo an alle Hilfsbereiten und sonstige Leser.
Ich möchte ein Zahlenschloss-Programm als kelines Spiel programmieren (in Java). Die Funktion soll in etwa folgende sein:
Der Anwender muss eine unbekannte Abfolge aus drei Zahlen in der richtigen Reihenfolge anklicken, so dass sich das Programm automatisch beendet. Ist eine angeklickte Zahl falsch oder die Reihenfolge verkehrt ändert sich die Backgroundfarbe auf rot.
Die von mir vorgegebene Zahlenabfolge soll lauten: 3-5-7
Ich habe versucht das Problem über eine dreifache If-Veschachtelung zu lösen. Das Problem ist aber, dass ich beim zweiten "If" noch immer die drei im String habe trotz dass ich die 5 angeklickt habe.
Gibt es Möglichkeiten nach der ersten If-Anweisung den ActionEvent neu abzufragen oder zurück zusetzen?
Ich habe zwar Sachen wie "dispatch()" oder "getNewEvent()" gefunden, habe aber keine Ahnung wie ich sowas in den Code einbringen kann (kam bisher dabei immer "Methode unbekannt").
Schon mal Danke für die kommenden Ratschläge!
Hier nun mein Code:
Ich möchte ein Zahlenschloss-Programm als kelines Spiel programmieren (in Java). Die Funktion soll in etwa folgende sein:
Der Anwender muss eine unbekannte Abfolge aus drei Zahlen in der richtigen Reihenfolge anklicken, so dass sich das Programm automatisch beendet. Ist eine angeklickte Zahl falsch oder die Reihenfolge verkehrt ändert sich die Backgroundfarbe auf rot.
Die von mir vorgegebene Zahlenabfolge soll lauten: 3-5-7
Ich habe versucht das Problem über eine dreifache If-Veschachtelung zu lösen. Das Problem ist aber, dass ich beim zweiten "If" noch immer die drei im String habe trotz dass ich die 5 angeklickt habe.
Gibt es Möglichkeiten nach der ersten If-Anweisung den ActionEvent neu abzufragen oder zurück zusetzen?
Ich habe zwar Sachen wie "dispatch()" oder "getNewEvent()" gefunden, habe aber keine Ahnung wie ich sowas in den Code einbringen kann (kam bisher dabei immer "Methode unbekannt").
Schon mal Danke für die kommenden Ratschläge!
Hier nun mein Code:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CombinationLock extends JFrame implements ActionListener
{
JButton button0;
JButton button1;
JButton button2;
JButton button3;
JButton button4;
JButton button5;
JButton button6;
JButton button7;
JButton button8;
JButton button9;
public CombinationLock() //Konstruktor
{
button0 = new JButton("0");
button1 = new JButton("1");
button2 = new JButton("2");
button3 = new JButton("3");
button4 = new JButton("4");
button5 = new JButton("5");
button6 = new JButton("6");
button7 = new JButton("7");
button8 = new JButton("8");
button9 = new JButton("9");
button0.setActionCommand("0");
button1.setActionCommand("1");
button2.setActionCommand("2");
button3.setActionCommand("3");
button4.setActionCommand("4");
button5.setActionCommand("5");
button6.setActionCommand("6");
button7.setActionCommand("7");
button8.setActionCommand("8");
button9.setActionCommand("9");
getContentPane().setLayout(new FlowLayout());
getContentPane().add(button0);
getContentPane().add(button1);
getContentPane().add(button2);
getContentPane().add(button3);
getContentPane().add(button4);
getContentPane().add(button5);
getContentPane().add(button6);
getContentPane().add(button7);
getContentPane().add(button8);
getContentPane().add(button9);
button0.addActionListener(this);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
button6.addActionListener(this);
button7.addActionListener(this);
button8.addActionListener(this);
button9.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
String cmd = evt.getActionCommand();
if(cmd.equals("3"))
{
cmd = evt.getActionCommand();
if(cmd.equals("5"))
{
cmd = evt.getNewActionCommand();
if(cmd.equals("7"))
{
System.exit(0);
}
else
{
getContentPane().setBackground(Color.red);
repaint();
}
}
else
{
getContentPane().setBackground(Color.red);
repaint();
}
}
else
{
getContentPane().setBackground(Color.red);
repaint();
}
}
public static void main(String[] args)
{
CombinationLock comLck = new CombinationLock();
WindowQuitter wquit = new WindowQuitter();
comLck.addWindowListener(wquit);
comLck.setSize(600,300);
comLck.setTitle("Combination Lock - To exit choose the correct three numbers");
comLck.setVisible(true);
}
}
class WindowQuitter extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
Zuletzt bearbeitet von einem Moderator: