Hallo,
habe eine wahrscheinlich simple Frage zu Swing, beziehungsweise einen Fehler in meinem Code den ich nicht ausfindig machen kann; es sollte folgendermaßen ablaufen:
Man gibt zuerst eine Kombination ein, danach wird ein Objekt einer JFrame erweiternden Klasse "Zahlenschloss" erzeugt, welches mit 10 JButtons ausgestattet ist, die mit Zahlen von eins bis neun beschriftet sind und ein "Neustart"-JButton. Wenn nun der Anwender die richtige Zahlenkombination per Klicke auf die JButtons eingibt, wird der Hintergrund grün werden. Jetzt soll jedoch nach Klick auf "Neustart" der Hintergrund zu lightGray werden, was allerdings nicht funktioniert.
Ich bitte euch einmal darüberzuschauen, wird für euch sicherlich nicht lange dauern
habe eine wahrscheinlich simple Frage zu Swing, beziehungsweise einen Fehler in meinem Code den ich nicht ausfindig machen kann; es sollte folgendermaßen ablaufen:
Man gibt zuerst eine Kombination ein, danach wird ein Objekt einer JFrame erweiternden Klasse "Zahlenschloss" erzeugt, welches mit 10 JButtons ausgestattet ist, die mit Zahlen von eins bis neun beschriftet sind und ein "Neustart"-JButton. Wenn nun der Anwender die richtige Zahlenkombination per Klicke auf die JButtons eingibt, wird der Hintergrund grün werden. Jetzt soll jedoch nach Klick auf "Neustart" der Hintergrund zu lightGray werden, was allerdings nicht funktioniert.
Ich bitte euch einmal darüberzuschauen, wird für euch sicherlich nicht lange dauern
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class Zahlenschloss extends JFrame implements ActionListener
{
StringBuffer loesung = new StringBuffer ();
int richtig;
Zahlenschloss frm;
Zahlenschloss (String inData)throws IOException{
super(inData);
JButton [] battenz = new JButton [9];
JButton zurueck = new JButton ("Neustart");
zurueck.setActionCommand("a");
for (int i = 0; i<9;i++){
battenz[i] = new JButton (i+1+"");
getContentPane().add(battenz[i]);
battenz[i].addActionListener(this);
}
getContentPane().add(zurueck);
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.println ("Lösung?");
try {
richtig = Integer.parseInt(stdin.readLine());
}
catch (NumberFormatException ex){
System.out.println ("Kann nicht in Integer konvertiert werden!");
}
}
public static void main (String [] args) throws IOException{
Zahlenschloss frm = new Zahlenschloss ("Zahlenschloss");
frm.setSize (200,200);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setLayout(new FlowLayout());
}
public void zurueck (){
loesung = new StringBuffer ();
this.getContentPane().setBackground(Color.lightGray);
this.repaint();
}
public void actionPerformed (ActionEvent evt){
if (evt.getActionCommand().equals("1")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("2")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("3")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("4")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("5")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("6")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("7")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("8")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("9")){
loesung.append(evt.getActionCommand());
}
else if (evt.getActionCommand().equals("a")){
zurueck();
}
if (loesung.toString().equals(richtig+"")){
this.getContentPane().setBackground(Color.green);
}
}
}