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
"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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, den Anruf zu Ihrem zweiten Klasse, wie unten
Eine weitere gute Praxis ist zu nennen
frame.setVisible(true)
bei der letzten, so dass Sie Gewohnheit finden jeden drift in der frame-position auf dem Bildschirm.frame.setVisible(true)
Letzte, aber ich verstehe immer noch nicht, was du meinst, über den Aufruf, dass der code der zweiten Klasse. Ich bin neu in Java, und dies ist mein erstes Programm, das ich mache, ohne die Verwendung von YouTube. wenn ich versuche, das, was Sie auch Tat, es zeigte einfach die erste Klasse, aber nicht zeigen, das JFrame in der zweiten Klasse. Habe ich etwas falsch gemacht? Ich war verwirrt. Im Grunde, alles was ich will ist zu entsorgen LoadingScreen.class Datei, und wenn SplashScreen.class hat entsorgt, nachdem die 10 Sekunden, LoadingScreen.class zeigen sollte. Manchmal, Java kann ein wenig ärgerlich und schwierig.InformationsquelleAutor prasanth
beim Aufruf frame.setVisoble(true) dont Sie eine Fehlermeldung erhalten, nicht statische Methode kann nicht verwiesen werden, aus statischen Kontext?
InformationsquelleAutor user2915917
Angenommen, Ihre zweite Klasse ist, wie,
Sie nur noch zu nennen,
InformationsquelleAutor prasanth