对gui我还是比较了解!!像这样的问题还是比较初级的,是初学者吧,希望你多了解面向对象的含义,如果你建立了一个gui,比如JFrame的子孙类吧,你用可以.setVisible(true)来显示,而用dispose()来关闭,当然如果是整个程序要退出用(setDefaultCloseOperation(EXIT_ON_CLOSE);) EG: Logon lo = new Logon(); lo.setVisible(true);//显示 lo.setDefaultCloseOperation(lo.EXIT_ON_CLOSE);// 点关闭时程序退出
在上面绘制图形和载入图片,
并且加入一个set_percent(int )方法来设置进程条情况
EG:
Logon lo = new Logon();
lo.setVisible(true);//显示
lo.setDefaultCloseOperation(lo.EXIT_ON_CLOSE);// 点关闭时程序退出
import java.awt.event.*;
import javax.swing.*;class SplashWindow extends JWindow implements ActionListener{
JLabel back=new JLabel(new ImageIcon("back.jpg"));//显示图形的标签
JProgressBar progressBar=new JProgressBar(1,100);//进度条
Timer timer;
int n=200;
public SplashWindow(){
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置鼠标形状
progressBar.setStringPainted(true);//允许进度条显示文本
progressBar.setString("正在加载程序-----");//设置进度条文本
getContentPane().add(back,"Center");
getContentPane().add(progressBar,"South");
setSize(400,300);
toFront();
setLocation(200,200);
setVisible(true);
timer=new javax.swing.Timer(100,this);
timer.addActionListener(this);
timer.start();
}
public void actionPerformed(ActionEvent e){
if(--n>0)
{
progressBar.setValue(100-n);
timer.restart();
}
else{
timer.stop();
dispose();
Login frame=new Login();
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
if(frameSize.height>screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width)
{
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
}
public static void main(String args[]){
new SplashWindow();
}
}
能运行的,不能的加我的Q :461590749
import java.awt.event.*;
import javax.swing.*;class SplashWindow extends JWindow implements ActionListener{
JLabel back=new JLabel(new ImageIcon("back.jpg"));//显示图形的标签
JProgressBar progressBar=new JProgressBar(1,100);//进度条
Timer timer;
int n=200;
public SplashWindow(){
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置鼠标形状
progressBar.setStringPainted(true);//允许进度条显示文本
progressBar.setString("正在加载程序-----");//设置进度条文本
getContentPane().add(back,"Center");
getContentPane().add(progressBar,"South");
setSize(400,300);
toFront();
setLocation(200,200);
setVisible(true);
timer=new javax.swing.Timer(100,this);
timer.addActionListener(this);
timer.start();
}
public void actionPerformed(ActionEvent e){
if(--n>0)
{
progressBar.setValue(100-n);
timer.restart();
}
else{
timer.stop();
dispose();
Login frame=new Login();//修改成自己的类,肯定能运行
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
if(frameSize.height>screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width)
{
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
}
public static void main(String args[]){
new SplashWindow();
}
}
import java.awt.*;import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;public class UnderFrame extends JFrame{
GraphicsDevice device;
ImageIcon icon;
public UnderFrame()
{
GraphicsEnvironment environment =
GraphicsEnvironment.getLocalGraphicsEnvironment();
device = environment.getDefaultScreenDevice();
}
public static void main(String[] args)
{
UnderFrame uf = new UnderFrame();
uf.setUndecorated(true);
uf.setSize(400, 300);
uf.setLocation(300, 300);
MyJPanel img=new MyJPanel();
uf.add(img);
uf.setVisible(true);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
uf.dispose();
uf = null;
}
}class MyJPanel extends JPanel
{
private Image image;
public MyJPanel()
{
// this.setBackground(Color.ORANGE);
/*try
{
image = ImageIO.read(new File("/spiderman.jpg"));
}
catch (IOException e)
{
e.printStackTrace();
}*/
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString("Here", 0, 0);
if(image == null)
return;
g.drawImage(image, 0, 0, null);
}
}
如果是jar打包
在manifest.mf文件里加一句
SplashScreen-Image: splash.jpg
然后把splash.jpg打包到jar文件里。要是直接用。就看看java的参数
-splash:<imagepath>
show splash screen with specified image