Durch klicken von Button in GUI wird leeres Fenster geöffnet und nicht mein Spiel "Memory"

coci111

Mitglied
Hallöchen zusammen,
ich habe ein Problem und zwar habe ich eine GUI programmiert in der durch das klicken des Buttons "Spiel starten" mein anderes programmiertes Spiel "Memory" geöffnet werden soll.
Mein Problem das ich habe ist, dass zwar ein neues fenster geöffnet wird allerdings dieses leer ist und die Verbindung zu der Klasse also zu meinem Spiel "Memory" fehlt. ES wäre nett wenn mir in dieser Situation jemand helfen kann ich bedanke mich schon im Vorraus für eure Hilfe.

Grüße Coci111

Programmcode GUI:
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import java.awt.SystemColor;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTextField;
import ch.aplu.jgamegrid.GGMouseListener;
import ch.aplu.jgamegrid.GameGrid;

public class Fenster_GUI extends JFrame {
    
 private JPanel contentPane;
 private JTextField txtname;
 
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     Fenster_GUI frame = new Fenster_GUI();
     frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }
 
 public Fenster_GUI() {
  setTitle("Class1");
  setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  setBounds(100, 100, 413, 352);
  contentPane = new JPanel();
  contentPane.setBackground(Color.WHITE);
  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  setContentPane(contentPane);
  contentPane.setLayout(null);
  JButton btnBeenden = new JButton("Beenden");
  btnBeenden.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
    System.exit(0);
   }
  });
  btnBeenden.setBounds(256, 241, 119, 23);
  contentPane.add(btnBeenden);
  JButton btnSpielstarten = new JButton("Spiel starten");
  btnSpielstarten.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
    Memory m1 = new Memory();
    m1.setVisible(true);
   }
  });
  btnSpielstarten.setBounds(10, 241, 119, 23);
  contentPane.add(btnSpielstarten);
  txtname = new JTextField();
  txtname.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    txtname.getText();
   }
  });
  txtname.setBounds(188, 286, 187, 20);
  contentPane.add(txtname);
  txtname.setColumns(10);
  JLabel lblname = new JLabel("Benutzername eingeben:");
  lblname.setBounds(10, 289, 168, 14);
  contentPane.add(lblname);
  JLabel label = new JLabel("");
  label.setEnabled(false);
  Image img = new ImageIcon(this.getClass().getResource("/memory.png.")).getImage();
  label.setIcon(new ImageIcon(img));
  label.setBounds(-111, 0, 529, 317);
  contentPane.add(label);
 }
}

und mein Code zum programmierten Spiel Memory:

Code Memory:
Java:
import ch.aplu.jgamegrid.*;
import java.awt.Color;
import ch.aplu.util.*;

public class Memory extends GameGrid implements GGMouseListener {
 private boolean isReady = true;
 private MemoryCard card1;
 private MemoryCard card2;
 
 public Memory() {
  super(4, 4, 115, null, null, false);
  
  MemoryCard[] cards = new MemoryCard[16];
  for (int i = 0; i < 16; i++) {
   if (i < 8)
    cards[i] = new MemoryCard(i);
   else
    cards[i] = new MemoryCard(i - 8);
   addActor(cards[i], getRandomEmptyLocation());
   cards[i].show(1);
  }
  addMouseListener(this, GGMouse.lPress);
  doRun();
  show();
  while (true) {
   Monitor.putSleep();
   delay(1000);
   card1.show(1);
   card2.show(1);
   isReady = true;
   setMouseEnabled(true);
  }
 }
 
 public boolean mouseEvent(GGMouse mouse) {
  Location location = toLocation(mouse.getX(), mouse.getY());
  MemoryCard card = (MemoryCard) getOneActorAt(location);
  if (card.getIdVisible() == 0)
   return true;
  card.show(0);
  if (isReady) {
   isReady = false;
   card1 = card;
  } else {
   card2 = card;
   if (card1.getId() == card2.getId())
    isReady = true;
   else {
    setMouseEnabled(false);
    Monitor.wakeUp();
   }
  }
  return true;
 }
 
 public static void main(String[] args) {
  new Memory();
 }
}
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Das nächste mal bitte deinen Text in einem Beitrag zusammenfassen und IMMER!! (Java-)Code in Code-Tags setzen: [code=java]//JAVA CODE HERE[/code]
 

Harry Kane

Top Contributor
Meinen sie das ich in der Klasse Memory auch das Fenster GUI aufrufen muss ?
Moin,
Natürlich, Du willst sie ja verwenden!!
@VfL_Freak: Nein, will coci nicht, sondern das umgekehrte. Sie will aus Fenster_GUI eine neue Instanz von Memory erstellen.
Die Basisklasse von Memory erweitert Gamegrid die wiederum java.awt.Canvas erweitert. GameGrid kann Animationen in einer Endlosschleife anzeigen.
Auf Anhieb kann ich keine Fehler entdecken. Man sollte zwar nicht Swing und AWT mischen, aber es müsste trotzdem was auf dem Bildschirm zu sehen sein.
 

coci111

Mitglied
das Problem liegt bei unserem Spiel Memory:
while (true) {
Monitor.putSleep();
delay(1000);
card1.show(1);
card2.show(1);
isReady = true;
setMouseEnabled(true);

denn wenn wir diesen Teil nicht sichtbar machen funktioniert das Öffnen des Fensters durch das klicken auf den Button Spiel starten. Kann mir da jemand helfen ? Ich glaube nämlich das ich diesen Teilcode meines Spiels umändern muss und nicht das Fenster GUI
 

coci111

Mitglied
ich hab ewig gesucht und dann diesen code gefunden und er funktioniert auch so super gut ohne probleme nur wenn ich dann das spiel memory mit meinem startfenster verbinden will funktioniert es nicht mehr außer ich mache diesen teil des codes den ich gerade oben reingeschrieben habe nicht sichtbar mache dann geht es außßer das sich die karten die ich aufgedeckt habe sich nicht wieder zurück umdrehen lassen. Grüße Coci111
 

coci111

Mitglied
und das problem liegt tatsächlich monitor.putSleep(); aber es ist dafür da, dass das Spiel reagiert wenn man klickt das dann die bilder sich dann umdrehen also reagieren sozusagen
 

VfL_Freak

Top Contributor
(a) was für eine Klasse ist Monitor?? Selbstgeschrieben?? :rolleyes:
(b) was genau macht die Methode putSleep??
Klingt IMHO nicht sonderlich nach "ist dafür da, dass das Spiel reagiert" - eher nach "Spiel: leg dich schlafen" ;)
Poste ggf. mal den Code dieser Klasse ...

Gruß Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
4 Swing Durch klicken auf Button Labels einem Panel hinzufügen Allgemeine Java-Themen 4
S Testen einer Anwendung durch klicken von Koordinaten Allgemeine Java-Themen 7
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
H Dienst durch ssh forwarding absichern? Allgemeine Java-Themen 15
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
Y Wie bekomme ich durch getImage an das Image heran? Allgemeine Java-Themen 1
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
W Java Telegram Bot - Eingabe durch User Allgemeine Java-Themen 2
Drachenbauer Wie kann ich das Wort "concrete" in einem String durch ein anderes Wort ersetzen lassen? Allgemeine Java-Themen 5
I Buchstabe durch seinen Nachfolger ersetzen Allgemeine Java-Themen 29
M Jdeps-Error durch multi-release Allgemeine Java-Themen 6
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
mrbig2017 Threads wait wird nicht durch notify beendet! Allgemeine Java-Themen 3
C OpenCl Setup und durch JavaCode ansteuern Allgemeine Java-Themen 17
J Erste Schritte Datenspeicherung durch Java Allgemeine Java-Themen 6
M Hässliche Schrift auf Graphics durch deriveFont Allgemeine Java-Themen 0
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
K Jar/DLL Abhängigkeiten durch User angeben lassen Allgemeine Java-Themen 6
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
T Quadrieren einer Zahl nur durch Addition Allgemeine Java-Themen 5
L Vererbung If-Else ersetzen durch was? Allgemeine Java-Themen 20
K OOP OOP Gui Spiel + Vererbungen Probleme durch Nichtwissen!! Allgemeine Java-Themen 1
I CountDown wird durch JOptionPane unterbrochen Allgemeine Java-Themen 11
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
B Counting Sort (Sortieren durch Zählen) Allgemeine Java-Themen 13
Z Durch Bäume iterieren Allgemeine Java-Themen 3
M Unterbrechnung durch Echtzeitbefehle? Allgemeine Java-Themen 4
G Suchweg durch Binärbaum speichern Allgemeine Java-Themen 4
L Label- & Textfelderzeugung durch Button Allgemeine Java-Themen 1
S RandomAccessFile durch bytearrayinputstream ersetzen Allgemeine Java-Themen 4
H Java Leistungssteigerung durch Code Anpassung Allgemeine Java-Themen 5
H Optimierung durch Threads Allgemeine Java-Themen 31
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
T Code durch eigenes Frame pausieren (ähnlich JDialog) Allgemeine Java-Themen 4
F Live Ticker durch Screenshots Allgemeine Java-Themen 22
C Hex Zeichen ersetzen durch leer Zeichen Allgemeine Java-Themen 5
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
N Algorithmus durch Workflow Allgemeine Java-Themen 7
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
E Oracle kann durch 0 teilen !?! Allgemeine Java-Themen 7
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
J Java Datei durch Java Datei öffnen Allgemeine Java-Themen 16
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6
S Bildaufbau durch Servlet -> Exception Allgemeine Java-Themen 11
F Slash durch Systembezogenen Fileseparator ersetzen Allgemeine Java-Themen 18
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
M Eclipse drei slashs durch zwei ersetzen? Allgemeine Java-Themen 3
D Updaten von Klassen durch jar.exe zerstört diese. Update durch WinRAR gelingt! Allgemeine Java-Themen 2
A SWT Ausgabetext Shellscript durch Java Allgemeine Java-Themen 8
Ark Array durch Interface ersetzen Allgemeine Java-Themen 7
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
fastjack Hardwareinformationen durch Java auslesen Allgemeine Java-Themen 7
S durch Code steppen Allgemeine Java-Themen 7
E Durch System.in.read() blockierten Thread stoppen Allgemeine Java-Themen 10
M eigene Klasse durch Composition mit java.io.File erweitern Allgemeine Java-Themen 3
C Markierung durch Maus lesen Allgemeine Java-Themen 9
T Synchronisation von Listen bei Zugriffen durch mehrere Prozesse Allgemeine Java-Themen 15
N Scanner läuft nicht durch Allgemeine Java-Themen 2
F kamera auslösen durch Programm Allgemeine Java-Themen 17
M Maus durch JavaProgramm bewegen Allgemeine Java-Themen 2
Dissi Itext - Anordnung von Elementen durch PDF Writer Allgemeine Java-Themen 2
N Casten durch generic vermeiden ?? Allgemeine Java-Themen 10
H Performancegewinn durch Mehrfachobjeknutzung Allgemeine Java-Themen 3
N Fehler abfang läuft doppelt durch Allgemeine Java-Themen 2
H Performance Vorteil durch Wechsel der JVM? Allgemeine Java-Themen 6
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
N int[] eindeutig durch eine Zahl repräsentieren Allgemeine Java-Themen 12
GilbertGrape Durch JDK debuggen Allgemeine Java-Themen 2
Q Objekte durch Reflection erzeugen Allgemeine Java-Themen 18
Chris81T Performance Problem durch mehrfaches Starten eines JAVA Prog Allgemeine Java-Themen 8
G Schleife durch Button beenden Allgemeine Java-Themen 6
royale Breitendurchlauf / Dijkstra durch Graph, vereinfacht Allgemeine Java-Themen 3
Hawkes Beschädigte Tarballs durch JavaTar Allgemeine Java-Themen 2
X Status Anzeige-durch Thread? Allgemeine Java-Themen 15
4 ich steige einfach nicht durch Allgemeine Java-Themen 5
P Thread Demonstrationr eist durch die Zeit Allgemeine Java-Themen 4
D erstellung einer seitenlangen xml durch ireport Allgemeine Java-Themen 3
R Jar-File vom Linux Desktop durch ancklicken starten? Allgemeine Java-Themen 5
M Java Programm durch Datei Öffnen Allgemeine Java-Themen 6
J IOException durch BufferedWriter.flush() ? Allgemeine Java-Themen 5
J Name eines Strings durch einen String festlegbar? Allgemeine Java-Themen 2
J Endlosschleife durch wechselseitigen Zugriff zweier Klassen? Allgemeine Java-Themen 2
J Zweidimensionales Array durch ZwischenArray ersetzen Allgemeine Java-Themen 3
T TreeMap durch Comparator mit Generics sortieren Allgemeine Java-Themen 9
J Chars in einem String durch "nichts" ersetzen Allgemeine Java-Themen 3
C Dateien auf Festplatte speichern durch "Durchsuchen-But Allgemeine Java-Themen 3
B VK_? << durch char rausbekommen Allgemeine Java-Themen 8
K Programm durch Tastendruck beenden Allgemeine Java-Themen 4
H Programmerweiterung durch Datei die Funktionen enthält Allgemeine Java-Themen 5
J Kommerzieller Einsatz von Java - Ich blick da nich durch. Allgemeine Java-Themen 14
T Mehrere Dateien byteweise durch stream schieben Allgemeine Java-Themen 9
D Thread durch Mouse-Event beenden Allgemeine Java-Themen 5
D In einem String "\" durch das "\\" erse Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben