Wie man ein JFrame (mit timer) öffnen Sie ein weiteres JFrame aus andere Klasse

Neu hier - meine erste Frage. Wie auch immer, ich bin hier, weil ich möchte ein JFrame, das ist zeitlich für 10000 Millisekunden, denke ich, und dann, wenn es geschlossen wird, es sollte öffnen Sie ein weiteres (das ist in einer anderen Klasse). Ich habe bereits den timer-Teil, nicht der "closing the timed JFrame, und öffnen ein weiteres" Teil.

Ich erinnere mich, dies zu tun, und eine Antwort gefunden. Es ging etwas wie NewClass.show() ('NewClass" ist der name der Klasse, die sollte sich öffnen) und geben Sie in OldClass.dispose() ('OldClass" ist der name der Klasse, die sollte in der Nähe).

Hier ist mein code bisher:

import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class SplashScreen extends JPanel {

public SplashScreen() {
 setOpaque(false);
 setLayout(new FlowLayout());
}

public static void main(String[] args) {

    final JFrame frame = new JFrame("Loading game...");
    frame.setSize(800, 600);
    frame.setResizable(false);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    SplashScreen background = new SplashScreen();
    frame.add(background);

    Timer timer = new Timer(10000, new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            frame.setVisible(false);
            frame.dispose();
           //I want to place my code here so then this class will close, and then the other class will open
        }
    });
    timer.setRepeats(false);
    timer.start();

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Image image = toolkit.getImage("Waiting.png");
    Point hotSpot = new Point(0,0);
    Cursor cursor = toolkit.createCustomCursor(image, hotSpot, "Cursor");
    frame.setCursor(cursor);

    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    int w = frame.getSize().width;
    int h = frame.getSize().height;
    int x = (dim.width - w) / 2;
    int y = (dim.height - h) / 2;

    frame.setLocation(x, y);

    JButton button = new JButton();

    JPanel panel = new JPanel();

}

public void paint(Graphics g) {
    Image a=Toolkit.getDefaultToolkit().getImage("Splash Screen.gif");
    g.drawImage(a,0,0,getSize().width,getSize().height,this);
    super.paint(g);

    }
}

Habe ich auch nicht mehr die zweite Klasse (was heißen würde 'LoadingScreen.class' aber ich werde, und es wird nur noch 'JSomethings' oder was auch immer (wie JFrame, JPanel, etc...)

Kann ich die zweite Klasse, aber alles was ich will ist die erste Klasse in der Nähe, nachdem der timer beendet 10 Sekunden oder 10000 Millisekunden, und dann automatisch öffnen Sie die zweite Klasse.

Dank

Siehe Die Verwendung von Mehreren JFrames, Gute/Schlechte Praxis?
"was heißt 'SplashScreen.class'" Warum nicht java.awt.SplashScreen für diese? Java Web Start unterstützt auch ein splash-Bild.

InformationsquelleAutor | 2013-02-28

Schreibe einen Kommentar