JLabel加载了图片,但显示不出来

zzcwyu 2009-09-20 12:20:37

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class ShoesGui extends JFrame implements ActionListener {
private JLabel jl=new JLabel("<HTML><h1 style=color:blue>"+"欢迎进入鞋店管理系统" +
"</h1></HTML>");
private JButton jb1=new JButton("注册帐号");
private JButton jb2=new JButton("修改密码");
private JButton jb3=new JButton("关于我们");
private JButton jb4=new JButton("进入系统");

private JPanel panel=new JPanel();
private JPanel pp=new JPanel();

public ShoesGui(){
this.getContentPane().add(panel);
panel.setLayout(new BorderLayout());
panel.add(jl,BorderLayout.NORTH );
panel.add(pp,BorderLayout.EAST);

ImageIcon image=new ImageIcon("tt.jpg");
image.setImage(image.getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT ));
JLabel jj=new JLabel(image);
panel.add(jj,BorderLayout.CENTER);


pp.setLayout(new BoxLayout(pp,BoxLayout.Y_AXIS));
pp.add(jb1,BorderLayout.WEST);
pp.add(jb2,BorderLayout.WEST);
pp.add(jb3,BorderLayout.WEST);
pp.add(jb4,BorderLayout.WEST);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600,400);
this.setVisible(true);
this.show();
}
public static void main(String[] args){
new ShoesGui();
}

}
...全文
1073 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
justinavril 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzcwyu 的回复:]
this.getContentPane().add(panel); 我有这一句啦,不是和你的一样吗
[/Quote]
你把它放到this.setSize(600,400)这句的前面试试,不要直接就放在第一句。
zzcwyu 2009-09-20
  • 打赏
  • 举报
回复
this.getContentPane().add(panel); 我有这一句啦,不是和你的一样吗
justinavril 2009-09-20
  • 打赏
  • 举报
回复
下面是我刚写的一段最简单的测试代码,是能够将图片加载到JLabel对象中显示的。

错误应该是你的pp和panel对象没有添加。因为你把button和lable都添加到JPanel中去了,但是JPanel对象也还要add的
import java.awt.*;
import javax.swing.*;

public class SimpleTest extends JFrame{
private ImageIcon image;
private JLabel lable;
private JPanel panel;

public SimpleTest(){
super("Test JLabel");

image = new ImageIcon("C:/2_lxcnn.jpg");
lable = new JLabel(image);

panel = new JPanel(new BorderLayout());

panel.add(lable, BorderLayout.SOUTH);

add(panel);//就是这一句
setSize(600, 400);
setVisible(true);
}
public static void main(String args[]){
new SimpleTest();
}
}
猿敲月下码 2009-09-20
  • 打赏
  • 举报
回复
JLabel jj=new JLabel("<html><body><image "
+ "' src="
+ "tt.jpg"
+ "'></img></body></html>");
amdgaming 2009-09-20
  • 打赏
  • 举报
回复

ImageIcon image=new ImageIcon("tt.jpg");
这样指定 图片不对的,

根据指定的文件创建一个 ImageIcon。使用 MediaTracker 预载图像以监视图像的加载状态。指定 String 可以是一个文件名或是一条文件路径。在指定一条路径时,可使用 Internet 标准正斜杠 ("/") 作为分隔符。(该字符串被转换成一个 URL,而正斜杠适用于所有系统。)例如,指定:

new ImageIcon("images/myImage.gif")

该描述被初始化为 filename 字符串。
24K純帥 2009-09-20
  • 打赏
  • 举报
回复
up
zzcwyu 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 justinavril 的回复:]
你运行一次 然后把Eclipse那个红色的小button(就是stop)点一下,再运行看看
[/Quote]
还是很正常地出现图片,呵呵,也真不知是怎么啦,
justinavril 2009-09-20
  • 打赏
  • 举报
回复
你运行一次 然后把Eclipse那个红色的小button(就是stop)点一下,再运行看看
zzcwyu 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 justinavril 的回复:]
引用 8 楼 zzcwyu 的回复:
当前目录是指工程的所在目录下,还是该类文件所在包文件里?我刚刚又把那句改成:ImageIcon image=new ImageIcon("\\tt.jpg"); 结果还一样能运行,真是奇怪!

既然是相对路径,那就把图片放在和java文件相同的文件夹下面把 或者工程下面
[/Quote]
问题是这张图片并没有在工程文件下或者在java文件里,而是E:\tt.jpg,
justinavril 2009-09-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zzcwyu 的回复:]
当前目录是指工程的所在目录下,还是该类文件所在包文件里?我刚刚又把那句改成:ImageIcon image=new ImageIcon("\\tt.jpg"); 结果还一样能运行,真是奇怪!
[/Quote]
既然是相对路径,那就把图片放在和java文件相同的文件夹下面把 或者工程下面
zzcwyu 2009-09-20
  • 打赏
  • 举报
回复
当前目录是指工程的所在目录下,还是该类文件所在包文件里?我刚刚又把那句改成:ImageIcon image=new ImageIcon("\\tt.jpg"); 结果还一样能运行,真是奇怪!
zzcwyu 2009-09-20
  • 打赏
  • 举报
回复
上面改后运行能显示出来,但相对路径呢,放在什么当前目录下,我用的是myeclipse
zzcwyu 2009-09-20
  • 打赏
  • 举报
回复
结合一楼和三楼,我只把ImageIcon image=new ImageIcon("tt.jpg"); 改成ImageIcon image=new ImageIcon("E:\\tt.jpg"); 但问题是如果要用相对路径来载入一张图片呢

62,634

社区成员

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

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