xtoph
Mitglied
Hi,
ich habe ein GUI Projekt, und möchte beim Beenden einen Quitscreen anzeigen lassen. Ich habe bereits einen Splashcreen, der auch wunderbar.
Also hab ich mir gedacht, ich leg eine Neue Instanz an, und lass sie anzeigen, wenn ich auf exit klicke!
Problem ist jetz aber, dass der Screen nicht angezeigt wird? und ich hab keine Ahnung warum?
hier mein splashscreen:
beim Exit möchte ich jetzt den neuen Splashscreen,als Quitscreen nochmal anzeigen, aba es klappt nicht.
Wäre schön, wenn jemand ne idee hätte
ich habe ein GUI Projekt, und möchte beim Beenden einen Quitscreen anzeigen lassen. Ich habe bereits einen Splashcreen, der auch wunderbar.
Also hab ich mir gedacht, ich leg eine Neue Instanz an, und lass sie anzeigen, wenn ich auf exit klicke!
Problem ist jetz aber, dass der Screen nicht angezeigt wird? und ich hab keine Ahnung warum?
hier mein splashscreen:
Code:
import javax.swing.*;
import java.awt.*;
import java.io.File;
import javax.sound.sampled.*;
public class SplashScreen extends JWindow {
private final Dimension bildgroesse = new Dimension(402, 302);
private int locX,locY;
Clip clip;
public SplashScreen(String image) {
final JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(1,1));
ImageIcon icon = new ImageIcon(image);
p1.add(new JLabel(icon));
setContentPane(p1);
setSize(bildgroesse);
//Sound
try{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("sounds/car.wav"));
AudioFormat af = audioInputStream.getFormat();
int size = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
byte[] audio = new byte[size];
DataLine.Info info = new DataLine.Info(Clip.class, af, size);
audioInputStream.read(audio, 0, size);
// for(int i=0; i < 32; i++) {
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(af, audio, 0, size);
clip.start();
// }
}catch(Exception e){ e.printStackTrace(); }
}
public void setLocX(int i){
this.locX = i;
}
public int getLocX(){
return locX;
}
public void setLocY(int i){
this.locY = i;
}
public int getLocY(){
return locY;
}
/**
* Funktion zum Anzeigen des Splashscreen
*/
public void show(int msekunden) {
setLocX( (getToolkit().getScreenSize().width ));
setLocY( (getToolkit().getScreenSize().height ));
setLocation(
(getToolkit().getScreenSize().width - 402) / 2,
(getToolkit().getScreenSize().height - 302) / 2);
setVisible(true);
try {
Thread.sleep(msekunden); // so lange anzeigen, dann ausschalten
} catch (InterruptedException e) {
}
setVisible(false);
}
public void kill() {
setVisible(false);
dispose();
}
}
beim Exit möchte ich jetzt den neuen Splashscreen,als Quitscreen nochmal anzeigen, aba es klappt nicht.
Code:
public void actionPerformed(ActionEvent event) {
if (event.getActionCommand().equals("Exit")) {
this.setVisible(false);
close.show(3000);
close.kill();
System.out.println("..............");
System.out.println("............");
System.out.println("..........");
System.out.println("........");
System.out.println("......");
System.out.println("....");
System.out.println("..");
System.out.println("... GOOD BYE ...");
System.exit(0);
}
Wäre schön, wenn jemand ne idee hätte