Hallo,
ich arbeite im Moment an einem TicTacToe-Programm.
Das GUI ist folgendermaßen aufgebaut:
Das Frame ist in zwei Panels unterteilt, buttonPanel und untenPanel.
buttonPanel hat ein 3,3 GridLayout und enthält 9 Buttons (später spielt man, indem man nacheinander auf die Buttons klickt.
untenPanel enthält ein Menü, mit dem man auswählt, ob X oder O anfängt, und den Button "Neues Spiel".
Das Programm kompiliert ohne Probleme, aber leider erscheint beim Ausführen nur ein leeres Frame.
Code:
Weiß jemand, wie ich das Problem lösen kann?
Danke im vorraus
ich arbeite im Moment an einem TicTacToe-Programm.
Das GUI ist folgendermaßen aufgebaut:
Das Frame ist in zwei Panels unterteilt, buttonPanel und untenPanel.
buttonPanel hat ein 3,3 GridLayout und enthält 9 Buttons (später spielt man, indem man nacheinander auf die Buttons klickt.
untenPanel enthält ein Menü, mit dem man auswählt, ob X oder O anfängt, und den Button "Neues Spiel".
Das Programm kompiliert ohne Probleme, aber leider erscheint beim Ausführen nur ein leeres Frame.
Code:
Code:
import java.awt.*;
//Hauptprogramm
public class TicTacToe extends Frame{
private Panel buttonPanel = new Panel();
private Panel untenPanel = new Panel();
private Button[] tic = new Button[9];
private Button newGame = new Button("Neues Spiel");
private Choice spielerChoice = new Choice();
public TicTacToe(){
setTitle("TicTacToe");
setBackground(Color.lightGray);
setResizable(false);
setVisible(true);
setSize(300,300);
//Ticbuttons hinzufügen
for(int i = 0; i>9; i++){
tic[i] = new Button(" ");
buttonPanel.add(tic[i]);
}
untenPanel.add(spielerChoice);
untenPanel.add(newGame);
spielerChoice.add("X beginnt");
spielerChoice.add("O beginnt");
//Layouts
setLayout(new BorderLayout() );
buttonPanel.setLayout(new GridLayout(3,3) );
untenPanel.setLayout(new GridLayout(2,1,30,20) );
//Panels hinzufügen
add(BorderLayout.SOUTH, untenPanel);
add(BorderLayout.CENTER, buttonPanel);
buttonPanel.setVisible(true);
untenPanel.setVisible(true);
}
public static void main(String args[]){
new TicTacToe();
}
}
Danke im vorraus