Ich bin ziemlich neu in der Java Programmierung und habe mir vorgenommen ein Tic Tac Toe mit einem Hauptmenu zu programmieren.
Das Hauptmenu habe ich mit dem JFrame realisiert.
Nun zu meinem Problem.
Ich habe im Hauptmenu den Button spiel STarten programmiert.
Das Tic Tac Toe ist soweit in einer Separaten Klasse theGame programmiert.
Ich habe aber nun Mühe, die Verbindung zwischen dem Button und der Klasse wo das Spiel Ablaufen soll, hinzukriegen.
Dazu müsste man wissen, wie die andere Klasse aussieht. Ganz allgemein: Du brauchst eine Referenz auf eine Instanz der Klasse und dann verwendest Du die entsprechenden Methoden.
Dazu müsste man wissen, wie die andere Klasse aussieht. Ganz allgemein: Du brauchst eine Referenz auf eine Instanz der Klasse und dann verwendest Du die entsprechenden Methoden.
Die Klasse ist noch nicht fertig. Ich wollte im ersten Schritt die Einbindung der Klasse in das Hauptmenu machen, damit ich überhaupt sehen kann, was ich da auch Programmiere und welche Auswirkungen es hat.
Entsprechend habe ich lediglich die Klasse und ein paar Variablen deklariert.
Bedeutet das, dass ich beim Button eine neue Instanz mache für die Klasse TheGame. Ist das soweit korrekt?
Die Methoden werden nun in die Klasse TheGame geschrieben?
Java:
publicclassTheGameextendsJPanelimplementsActionListener{privatefinalint breite =400;privatefinalint hoehe =400;//Es folgen weitere Variablen//KonstruktorpublicTheGame(){initBoard();}publicvoidinitBoard(){setBackground(Color.black);setFocusable(true);setPreferredSize(newDimension(breite, hoehe));initGame();}}
Code:
JFrame gameScreen;
JPanel menuButton;
JButton newGame;
public void erstelleFenster(MenuAuswahl menu) {
gameScreen = new JFrame();
gameScreen.setSize(300,300);
gameScreen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameScreen.getContentPane();
gameScreen.setBackground(Color.black);
gameScreen.setLayout(null);
gameScreen.setResizable(false);
//Hauptmenu Panel
menuButton = new JPanel();
menuButton.setLayout(new GridLayout(1,1));
menuButton.setBounds(120,130,150,150);
newGame = new JButton("Spiel starten");
newGame.addActionListener(menu);
newGame.setActionCommand("start");
btnSpielBeenden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
TheGame game = new TheGame();
}
});
menuButton.add(newGame);
gameScreen.add(newGame );
gameScreen.add(hauptmenuButton);
gameScreen.setVisible(true);
}
}
Ein klares Jein, man müsste wissen, was denn eigentlich passieren soll. Unabhängig davon: wieso erstellt der Beenden-Button ein neues Spiel?!?
Wenn Du z. B. ein Fenster mit einem Menü haben willst und beim Klick auf einen Button ein neues Fenster mit Deinem Spiel erzeugen willst, dann kannst Du tatsächlich eine neue Instanz erstellen:
Willst Du dagegen das Spiel im gleichen Fenster anzeigen, dann erzeugst Du TheGame nur einmal und sorgst dafür, dass das Spiel beim Klick auf "Neues Spiel" neu initialisiert wird.