Java Swing初级问题 有些软件的启动页面比如说Jbuilder eclipse什么的刚启动时出现的那个页面是怎么做的?我想做一个类似的界面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哥们,分拿来吧!/**Java Application启动画面的制作现象: JBuilder启动时有一个启动画面,在Jbuilder所有的初始化工作都完成之后,启动画面消失,继而JBuilder可以开始使用。 解决方案: 1、新建一个启动画面Window类 java.awt.Window windowSplash; 2、调用prepareSplash()函数,初始化启动界面 private void prepareSplash() { Toolkit toolkit = Toolkit.getDefaultToolkit(); windowSplash = new Window( this ); Image image = toolkit.getImage( "images" + File.separator + "splash.gif" ); ImageCanvas canvas = new ImageCanvas( image ); windowSplash.add( canvas, "Center" ); Dimension scmSize = toolkit.getScreenSize(); int imgWidth = image.getWidth( this ); int imgHeight = image.getHeight( this ); windowSplash.setLocation( scmSize.width/2 - (imgWidth/2), scmSize.height/2 - (imgHeight/2) ); windowSplash.setSize( imgWidth, imgHeight ); } 3、在Application的JFrame类(主界面)中调用startSplash(),显示启动界面,然后初试化JFrame的各个可视化组件,初始化后台数据库等(如数据库的连接) private void startSplash() { windowSplash.setVisible( true ); windowSplash.toFront(); } 4、在所有的初始化工作完成之后,调用stopSplash()函数,停止显示启动画面 private void stopSplash() { windowSplash.dispose(); } */import java.awt.*;import javax.swing.*;import java.io.File;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class StartUpMenu implements ActionListener { Window windowSplash; JFrame f; boolean flag = true; public StartUpMenu() { f = new JFrame("Hello"); f.setSize(400, 300); prepareSplash(); //加载图片 startSplash(); //显示启动图片 try { Thread.sleep(5000); } catch (InterruptedException ex) { ex.printStackTrace(); } JButton showBG = new JButton("显示宝库"); showBG.addActionListener(this); f.getContentPane().add(showBG); stopSplash(); //关闭启动图像 f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { StartUpMenu startUpMenu1 = new StartUpMenu(); } private void prepareSplash() { Toolkit toolkit = Toolkit.getDefaultToolkit(); windowSplash = new Window(f); Image image = toolkit.getImage("./images" + File.separator + "drugbox.jpg"); ImageCanvas canvas = new ImageCanvas(image); //windowSplash.add(canvas, "Center"); windowSplash.add(canvas, BorderLayout.CENTER); Dimension scmSize = toolkit.getScreenSize(); int imgWidth = image.getWidth(f); int imgHeight = image.getHeight(f); windowSplash.setLocation(scmSize.width / 2 - (imgWidth / 2), scmSize.height / 2 - (imgHeight / 2)); windowSplash.setSize(imgWidth, imgHeight); } private void startSplash() { windowSplash.setVisible(true); windowSplash.toFront(); } private void stopSplash() { windowSplash.dispose(); } public void actionPerformed(ActionEvent actionEvent) { if(flag){ windowSplash.setVisible(true); flag = false; } else{ windowSplash.dispose(); flag = true; } }}-----------------------------------------------------------------import java.awt.Canvas;import java.awt.Image;import java.awt.MediaTracker;import java.awt.Graphics;import java.awt.Dimension;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author Victor * @version 1.0 */class ImageCanvas extends Canvas{ private Image image; public ImageCanvas( Image image ) { MediaTracker mt = new MediaTracker( this ); mt.addImage( image, 0 ); try{ mt.waitForID(0); } catch( Exception e) {} this.image = image; } public void paint( Graphics g ) { g.drawImage( image, 0, 0, this ); } public void update( Graphics g ) { paint( g ); } public Dimension getPreferedSized() { return new Dimension( image.getWidth(this), image.getHeight(this) ); }} 谢谢programdolt还想问问是不是java做的程序的启动画面都是这么做的? 拿applet或swing组件不能做到么,还是他们有什么缺点 也可以在java.awt.Window 中添加JLabel或JButton组件,组件上显示图片,取代Canvas。 双核电脑对学线程有影响吗? java 文件属性 请教问题,高手进 一个菜鸟的问题--在JAVA中如何打开一个带参数的网页 微软网站有问题,还是网络错误? 关于接口的问题,希望各位仁兄帮忙~~~ JAVA中怎么得到本机的IP地址? 关于String类的小问题 @@@@@@@@@@@@@@ 高分赠送:::如何在BUtton 事件中画图@@@@@@@@@@ 小白提问:java cmd编译运行问题 有没有相关工具? 封装SWT,使其操作更为渐变。有意者加我QQ
/**
Java Application启动画面的制作
现象: JBuilder启动时有一个启动画面,在Jbuilder所有的初始化工作都完成之后,启动画面消失,继而JBuilder可以开始使用。 解决方案: 1、新建一个启动画面Window类 java.awt.Window windowSplash; 2、调用prepareSplash()函数,初始化启动界面 private void prepareSplash()
{
Toolkit toolkit = Toolkit.getDefaultToolkit();
windowSplash = new Window( this );
Image image = toolkit.getImage( "images" + File.separator + "splash.gif" );
ImageCanvas canvas = new ImageCanvas( image );
windowSplash.add( canvas, "Center" );
Dimension scmSize = toolkit.getScreenSize();
int imgWidth = image.getWidth( this );
int imgHeight = image.getHeight( this );
windowSplash.setLocation( scmSize.width/2 - (imgWidth/2), scmSize.height/2 - (imgHeight/2) );
windowSplash.setSize( imgWidth, imgHeight );
} 3、在Application的JFrame类(主界面)中调用startSplash(),显示启动界面,然后初试化JFrame的各个可视化组件,初始化后台数据库等(如数据库的连接) private void startSplash()
{
windowSplash.setVisible( true );
windowSplash.toFront();
} 4、在所有的初始化工作完成之后,调用stopSplash()函数,停止显示启动画面 private void stopSplash()
{
windowSplash.dispose();
}
*/import java.awt.*;
import javax.swing.*;
import java.io.File;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class StartUpMenu implements ActionListener {
Window windowSplash;
JFrame f;
boolean flag = true;
public StartUpMenu() {
f = new JFrame("Hello");
f.setSize(400, 300);
prepareSplash(); //加载图片
startSplash(); //显示启动图片
try {
Thread.sleep(5000);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
JButton showBG = new JButton("显示宝库");
showBG.addActionListener(this);
f.getContentPane().add(showBG); stopSplash(); //关闭启动图像
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public static void main(String[] args) {
StartUpMenu startUpMenu1 = new StartUpMenu();
} private void prepareSplash() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
windowSplash = new Window(f);
Image image = toolkit.getImage("./images" + File.separator + "drugbox.jpg");
ImageCanvas canvas = new ImageCanvas(image);
//windowSplash.add(canvas, "Center");
windowSplash.add(canvas, BorderLayout.CENTER);
Dimension scmSize = toolkit.getScreenSize();
int imgWidth = image.getWidth(f);
int imgHeight = image.getHeight(f);
windowSplash.setLocation(scmSize.width / 2 - (imgWidth / 2),
scmSize.height / 2 - (imgHeight / 2));
windowSplash.setSize(imgWidth, imgHeight);
} private void startSplash() {
windowSplash.setVisible(true);
windowSplash.toFront();
} private void stopSplash() {
windowSplash.dispose();
} public void actionPerformed(ActionEvent actionEvent) {
if(flag){
windowSplash.setVisible(true);
flag = false;
}
else{
windowSplash.dispose();
flag = true;
} }
}
-----------------------------------------------------------------
import java.awt.Canvas;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Graphics;
import java.awt.Dimension;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author Victor
* @version 1.0
*/class ImageCanvas extends Canvas
{
private Image image;
public ImageCanvas( Image image )
{
MediaTracker mt = new MediaTracker( this );
mt.addImage( image, 0 );
try{
mt.waitForID(0);
}
catch( Exception e)
{}
this.image = image;
}
public void paint( Graphics g ) {
g.drawImage( image, 0, 0, this );
}
public void update( Graphics g ) {
paint( g );
}
public Dimension getPreferedSized() {
return new Dimension( image.getWidth(this), image.getHeight(this) );
}
}
还想问问
是不是java做的程序的启动画面都是这么做的?