Hallo,
ich habe zur Zeit bei meiner Facharbeit (Mensch ärgere Dich nicht) ein Problem, das aber leider keinen Fehler zurückliefert - ein JFrame bleibt einfach leer. Besagter Frame soll aufgerufen werden, eine kleine Grafik enthalten, und nach 1.5 sec wieder geschlossen werden, eine Art manuell programmiertes PopUp also.
Ich habe mich gestern etwas über wait() informiert und dachte mir, dass diese Methode perfekt für die Aufgabe sei. Der einzige Nachteil: rufe ich die sequenz auf, wird das Fenster zwar aufgerufen und wieder geschlossen, bleibt aber leer/transparent (s. screenshot).
Der Aufruf des Fensters erfolgt derzeit noch über einen "Test-Button" und soll später immer dann erfolgen, wenn eine Figur geschlagen wird. Wenn ich das hier fensterZu() auskommentiere, entsteht der Frame wie geplant, bleibt allerdings bestehen.
Hier die eigentlichen Methoden:
Hier auch nochmal der Konstruktor für das Fenster, wobei ich hier nicht den Fehler vermute?!
schonmal vielen Dank an alle, die mir helfen können!
ich habe zur Zeit bei meiner Facharbeit (Mensch ärgere Dich nicht) ein Problem, das aber leider keinen Fehler zurückliefert - ein JFrame bleibt einfach leer. Besagter Frame soll aufgerufen werden, eine kleine Grafik enthalten, und nach 1.5 sec wieder geschlossen werden, eine Art manuell programmiertes PopUp also.
Ich habe mich gestern etwas über wait() informiert und dachte mir, dass diese Methode perfekt für die Aufgabe sei. Der einzige Nachteil: rufe ich die sequenz auf, wird das Fenster zwar aufgerufen und wieder geschlossen, bleibt aber leer/transparent (s. screenshot).
Der Aufruf des Fensters erfolgt derzeit noch über einen "Test-Button" und soll später immer dann erfolgen, wenn eine Figur geschlagen wird. Wenn ich das hier fensterZu() auskommentiere, entsteht der Frame wie geplant, bleibt allerdings bestehen.
Java:
else if (cmd.equals("Test"))
{
kSpiel.fensterStart();
kSpiel.fensterZu();
}
Hier die eigentlichen Methoden:
Java:
public void fensterStart()
{
hKleinesFenster = new KleinesFenster("Rot", "Grün");
//zentriert das Fenster
Dimension fensterSize = new Dimension(310, 230);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Integer top = (screenSize.height - fensterSize.height) / 2;
Integer left = (screenSize.width - fensterSize.width) / 2;
hKleinesFenster.setSize(fensterSize);
hKleinesFenster.setLocation(left, top);
hKleinesFenster.setVisible(true);
}
public synchronized void fensterZu()
{
//wartet eine Sekunde, schließt dann das Fenster wieder
try
{
this.wait(1500);
hKleinesFenster.dispose();
}
catch (InterruptedException e)
{
System.out.println("Es ist ein Fehler aufgetreten:" + e.getMessage());
}
}
Hier auch nochmal der Konstruktor für das Fenster, wobei ich hier nicht den Fehler vermute?!
Java:
//Konstruktor für Wurf-Fenster - die jeweiligen Spielerfarben sind einzugeben
public KleinesFenster(String pWerfer, String pFlieger)
{
super(pWerfer + " wirft " + pFlieger);
this.getContentPane().setBackground(Color.white);
this.getContentPane().setLayout(null);
//zum Aufruf der Dateien werden die Farben auf zwei Buchstaben abgekürzt: "Rot" wird z.B. zu "RO"
String lWerfer = kuerze(pWerfer);
String lFlieger = kuerze(pFlieger);
ImageIcon bild = new ImageIcon("image/ereignis/" + lWerfer + "_wirft_" + lFlieger + ".gif");
lbBild = new JLabel(bild);
lbBild.setBounds(0, 0, 300, 200);
this.getContentPane().add(lbBild);
}
schonmal vielen Dank an alle, die mir helfen können!