请问以下这个程序图片为什么出不来,没有报任何错。就是图片出不来。
import javax.swing.*;
import java.awt.*;
import java.net.*;public  class JSplashWindow extends JWindow implements Runnable {  
Thread splashThread=null; boolean bool = true;
JPanel splash = null;
URL url = null;
  
public JSplashWindow() {    
 
splash = new JPanel(new BorderLayout());    
url = getClass().getResource("/images/winter.jpg");    
setContentPane(splash);  

Dimension screen = getToolkit().getScreenSize();    
pack();    
setLocation((screen.width - getSize().width) / 2,(screen.height - getSize().height) / 2); 

}   public void start(){    
this.toFront();    
splashThread=new Thread(this);    
splashThread.start();  
}
  
public void run(){ 
JLabel label = new JLabel(new ImageIcon(url));
  
try {   
setVisible(true); 
while(bool) {     if(url != null){       
splash.add(label,BorderLayout.CENTER);    
   }     
   Thread.sleep(500); 
   splash.remove(label);
   setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
   Thread.sleep(500);

        }    } catch (Exception ex) {      
ex.printStackTrace();    
}    
  
}
  
static void showFrame(String title){    
JFrame frame = new JFrame(title);    
frame.setSize(400,300);    
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      
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) {    
showFrame("Demo splash window");    
JSplashWindow splash = new JSplashWindow();    
splash.start();  
}
}

解决方案 »

  1.   

    即使图片路径弄好了你这个程序加载不了图片,是程序的问题
    package com;//com文件夹放有java,class文件,还有放有winter.jpg图片的images文件夹
    import javax.swing.*;
    import java.awt.*;
    import java.net.*;
    public  class JSplashWindowEx extends JWindow implements Runnable {
      Thread splashThread=null;
     // private JProgressBar progress;
      public JSplashWindowEx() {
        //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        JPanel splash = new JPanel(new BorderLayout());
        URL url = getClass().getResource("/images/winter.jpg");    if(url != null){
          splash.add(new JButton(new ImageIcon(url)),
          BorderLayout.CENTER);
        }
       /* progress = new JProgressBar(1,100);
        progress.setStringPainted(true);
        progress.setBorderPainted(false);
        progress.setString("Program is Now Loading...");
        progress.setBackground(Color.white);
        splash.add(progress,BorderLayout.SOUTH);
        setContentPane(splash);*/    Dimension screen = getToolkit().getScreenSize();
        pack();
        setLocation((screen.width - getSize().width) / 2,
    (screen.height - getSize().height) / 2);
      }  public void start(){
        this.toFront();
        splashThread=new Thread(this);
        splashThread.start();
      }  public void run(){
        show();
        try {
          for (int i=0;i<100;i++){
            Thread.sleep(100);
            progress.setValue(progress.getValue() + 1);
          }
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
        dispose();
      }  static void showFrame(String title){
        JFrame frame = new JFrame(title);
        frame.setSize(640,480);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Center the window
        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);    try {
          Thread.sleep(10000);
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
        frame.setVisible(true);  }  public static void main(String[] args) {
        JSplashWindowEx splash = new JSplashWindowEx();
        splash.start();
        showFrame("Splash window demo");
      }
    }
    你参考一下
      

  2.   

    谢谢3楼,可是你给我的代码依然不能察看到图片。
    是这样的 我把run方法中的
    if(url != null){ 
    splash.add(label,BorderLayout.CENTER); 

    这段代码放到JSplashWindow的构造方法里面就能够查看到图片
    但是像这样放到run中就无法查看到图片。