M
_Matthias__
Gast
Hallo!
Ich programmiere noch nicht sehr lange in Java und bin momentan dabei, das Eventhandling zu lernen.
Ich möchte gerne TikTakToe programmieren.
Leider funktioniert dass noch nicht so wie ich es mir vorgestellt habe.
Programm:
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
Folgendes Problem:
Wenn ich auf einen Button drücke, färbt sich dieser immer rot.
Wenn ich den "Weiter" Button drücke, passiert gar nichts.
Der Fehler müsste beim überschreiben von actionPerformed passieren, nur weiß ich leider nicht wo.
Würde mich über Tipps und Verbesserungsvorschläge freuen!
Mfg,
Matthias
Ich programmiere noch nicht sehr lange in Java und bin momentan dabei, das Eventhandling zu lernen.
Ich möchte gerne TikTakToe programmieren.
Leider funktioniert dass noch nicht so wie ich es mir vorgestellt habe.
Programm:
------------------------------------------------------------------------------------------
Java:
import java.awt.*;
import java.awt.event.*;
public class TikTakToe extends Frame implements ActionListener {
int i,x=0;
int z=1;
static int gw=0;
Button b[]=new Button[10];{
for(i=0;i<10;i++)
{
b[i] = new Button(" ");
b[i].setBackground(Color.LIGHT_GRAY);
}
};
Label pl1 = new Label("Spieler 1 (rot): "+gw);
Label pl2 = new Label("Spieler 2 (blau):");
public TikTakToe(){
setLayout(new BorderLayout());
Panel panel1 = new Panel();
add((panel1),BorderLayout.NORTH);
panel1.setLayout(new GridLayout(3,3,0,1));
Panel panel2 = new Panel();
add((panel2),BorderLayout.SOUTH);
panel2.setLayout(new FlowLayout());
for(i=0;i<=8;i++)
{
panel1.add(b[i]);
b[i].addActionListener(this);
}
panel2.add(b[9]);
panel2.add(pl1);
panel2.add(pl2);
b[9].setLabel("Weiter");
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
setSize(300,150);
setVisible(true);
}
public void actionPerformed(ActionEvent ae){
Object obj = ae.getSource();
int a=0;
int i=0,z=0,x=0;
//bei betätigen des "Weiter" Buttons sollten alle Felder wieder hellgrau gemacht werden
if(obj==b[9])
{
for(i=0;i<9;i++)
b[i].setBackground(Color.LIGHT_GRAY);
}
for(z=1;z<10;z++)
{
for(x=0;x<9;x++)
{
if(obj==b[x] && b[x].getBackground()== Color.LIGHT_GRAY)
{
if(z%2==0)
b[x].setBackground(Color.blue);
else
b[x].setBackground(Color.red);
}
// Überprüfung, ob wer gewonnen hat (erst angefangen)
if(b[0].getBackground()==b[1].getBackground()&& b[1].getBackground()==b[2].getBackground())
{
a=1;
break;
}
}
if(a==1) gw+=1;
}
}
}
Folgendes Problem:
Wenn ich auf einen Button drücke, färbt sich dieser immer rot.
Wenn ich den "Weiter" Button drücke, passiert gar nichts.
Der Fehler müsste beim überschreiben von actionPerformed passieren, nur weiß ich leider nicht wo.
Würde mich über Tipps und Verbesserungsvorschläge freuen!
Mfg,
Matthias