ここで新しい - 私の最初の質問。とにかく、私がここにいるのは、10000 ミリ秒の時間が設定されている JFrame を作成したいからです。それが閉じると、別の (別のクラスにある) 別のフレームが開くはずです。「時間指定されたJFrameを閉じて別のものを開く」部分ではなく、すでにタイマー部分を実行しました。
私はこれをしたことを覚えていて、答えを見つけました。NewClass.show()
('NewClass' は開くべきクラス名です) のようになり、次に入力しますOldClass.dispose()
('OldClass' は閉じるべきクラス名です)。
これまでの私のコードは次のとおりです。
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);
}
}
私は 2 番目のクラスを作成しませんでした ('LoadingScreen.class' と呼ばれますが、'JSomethings' など (JFrame、JPanel など) だけを含むクラスにする予定です)。
2 番目のクラスを作成できますが、タイマーが 10 秒または 10000 ミリ秒で終了した後に最初のクラスを閉じてから、2 番目のクラスを自動的に開くだけです。
ありがとう