JFrame richtig implementiert

This commit is contained in:
Marc Koch 2020-04-27 22:24:47 +02:00
parent bd5c773204
commit 736a0712db
Signed by: marc
GPG Key ID: AC2D4E00990A6767
1 changed files with 20 additions and 25 deletions

View File

@ -13,11 +13,10 @@ import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.io.IOException; import java.io.IOException;
public class Fenster extends JPanel implements ActionListener { public class Fenster extends JFrame implements ActionListener {
private final JFrame fenster; private final MyPanel myPanel;
private MyPanel myPanel; private final Spielfeld spielfeld;
private Spielfeld spielfeld;
private int fenstergroesse; private int fenstergroesse;
// Menüleiste // Menüleiste
@ -27,11 +26,11 @@ public class Fenster extends JPanel implements ActionListener {
private JMenu optionen; private JMenu optionen;
// Datei // Datei
private JMenuItem optionFenstergroesse; private final JMenuItem optionFenstergroesse;
private JMenuItem loescheSpielstaende; private final JMenuItem loescheSpielstaende;
public Fenster() { public Fenster() {
this.fenster = new JFrame("Tic Tac Toe"); this.setzeTitel("Tic Tac Toe");
this.fenstergroesse = 600; this.fenstergroesse = 600;
this.myPanel = new MyPanel(); this.myPanel = new MyPanel();
@ -54,10 +53,10 @@ public class Fenster extends JPanel implements ActionListener {
this.optionen.add(optionFenstergroesse); this.optionen.add(optionFenstergroesse);
this.optionen.add(loescheSpielstaende); this.optionen.add(loescheSpielstaende);
this.fenster.add(menue, BorderLayout.NORTH); this.add(menue, BorderLayout.NORTH);
this.fenster.setSize(fenstergroesse, fenstergroesse + 50); this.setSize(fenstergroesse, fenstergroesse + 50);
this.fenster.addWindowListener(new WindowAdapter() { this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { public void windowClosing(WindowEvent e) {
try { try {
Speicher.spielstaendeSpeichern(); Speicher.spielstaendeSpeichern();
@ -67,8 +66,12 @@ public class Fenster extends JPanel implements ActionListener {
System.exit(0); // sofortiges Programmende System.exit(0); // sofortiges Programmende
} }
}); });
this.fenster.setLocationRelativeTo(null); this.setLocationRelativeTo(null);
this.fenster.setResizable(false); this.setResizable(false);
this.getContentPane().add(this.myPanel);
this.spielfeld = new Spielfeld(this);
} }
public void hinzufuegen(Component c) { public void hinzufuegen(Component c) {
@ -85,32 +88,24 @@ public class Fenster extends JPanel implements ActionListener {
} }
public void newSpielfeld() { public void newSpielfeld() {
this.myPanel = null;
this.spielfeld = null;
this.myPanel = new MyPanel();
this.fenster.getContentPane().add(this.myPanel);
this.spielfeld = new Spielfeld(this);
} }
public void macheSichtbar(boolean sichtbar) { public void macheSichtbar(boolean sichtbar) {
this.fenster.setVisible(sichtbar); this.setVisible(sichtbar);
} }
public void setzeTitel(String titel) { public void setzeTitel(String titel) {
this.fenster.setTitle(titel); this.setTitle(titel);
} }
public void setzeFenstergroesse(int fenstergroesse) { public void setzeFenstergroesse(int fenstergroesse) {
this.fenstergroesse = fenstergroesse; this.fenstergroesse = fenstergroesse;
this.fenster.setSize(fenstergroesse, fenstergroesse + 50); this.setSize(fenstergroesse, fenstergroesse + 50);
this.spielfeld.resizeFelder(fenstergroesse); this.spielfeld.resizeFelder(fenstergroesse);
this.myPanel.repaint(); this.myPanel.repaint();
} }
public MyPanel getMyPanel() {
return myPanel;
}
public Spielfeld getSpielfeld() { public Spielfeld getSpielfeld() {
return spielfeld; return spielfeld;
} }