希望大家可以帮我看看这个程序

alaeAndJava 2010-03-31 10:52:31
请问以下这个程序图片为什么出不来,没有报任何错。就是图片出不来。


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();
}
}
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
alaeAndJava 2010-04-01
  • 打赏
  • 举报
回复
没有人知道为什么吗?哭了。。
chen5567799 2010-03-31
  • 打赏
  • 举报
回复
晕 , 好久没有接触SE了。。。嗨,有点迷惑。。。。
a274456342 2010-03-31
  • 打赏
  • 举报
回复
看不懂!
  • 打赏
  • 举报
回复
即使图片路径弄好了你这个程序加载不了图片,是程序的问题
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");
}
}
你参考一下
donkee8 2010-03-31
  • 打赏
  • 举报
回复
刷新问题
ZRBRZB 2010-03-31
  • 打赏
  • 举报
回复
你没有把splash加到frame上吧
alaeAndJava 2010-03-31
  • 打赏
  • 举报
回复
谢谢3楼,可是你给我的代码依然不能察看到图片。
是这样的 我把run方法中的
if(url != null){
splash.add(label,BorderLayout.CENTER);
}
这段代码放到JSplashWindow的构造方法里面就能够查看到图片
但是像这样放到run中就无法查看到图片。

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧