我想set一个JFrame其运行时无任何操作显示5秒自动关闭,目的是我 想在打开某JFRAME2的之前先运行JFRAME1,JFrame1上面我镶嵌了 一个图片,请问怎么做?
我弄了个最简单的,你参考一下吧。
参考资料:
http://download.oracle.com/javase/tutorial/uiswing/misc/splashscreen.html
要运行代码,需要加一个vm 参数。
如果是在命令行执行:
java -splash:图片地址 test.MySplashTest
如果是在eclipse中的话
运行图标右边的下拉箭头 -》 Run Configurations -》 Arguments -》 VM Arguments
填上
-splash:图片地址
[code="java"]package test.other;
import java.awt.SplashScreen;
import javax.swing.JFrame;
public class MySplashTest extends JFrame {
public MySplashTest() {
super("SplashScreen demo");
setSize(500, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
final SplashScreen splash = SplashScreen.getSplashScreen();
if (splash == null) {
System.out.println("SplashScreen.getSplashScreen() returned null");
return;
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
splash.close();
setVisible(true);
}
public static void main(String[] args) {
new MySplashTest();
}
}[/code]
可以在绘制JFrame2的线程里,在显示JFrame2,然后让线程休眠你指定的时间:
Thread.sleep(5000);
然后把JFrame1 dispose掉,再显示JFrame2就可以了。
感觉你要的效果很像一个欢迎界面,可以考虑一下SplashScreen.
控制台有什么输出吗?
[quote]-splash:图片地址[/quote]
这个参数加了吗?
使用js来设置个定时器,希望能给你帮助!
[code="html"]
[/code]