关于swing JButton的icon不显示的问题

Sandy_csy 2014-10-30 03:46:56
最近在弄swing,感觉强大无比,谁说java不适合做c/s的。
。。。,,,,,
泥煤,困了两天了,啥办法都试过了,大婶都来看看吧。
如题:在Eclipse中运行正常显示,没有任何问题。 打包jar后运行及用exe4j做exe后运行都不显示图片。


Image img = ImageIO.read(getClass().getResourceAsStream(
"/img/mian.png"));
//先将此图放到JPanel中做背景图片
panel = new ImagePanel();
panel .setImg(img);
//至此一切正常,Eclipse运行正常,打包后jar运行正常,exe4j做exe后运行也正常。图片照常显示 ,,

//再将此图放入JButton中
JButton jb = new JButton();
jb.setIcon(new ImageIcon(img));
//Eclipse中运行正常显示,打包后jar运行不显示,exe4j做exe后运行也不显示。

提示:jb 这个JButton是在选项卡中的JPanel里边的,,每个选项卡中有多个JButton。如图:
...全文
772 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nj_dobetter 2014-10-31
  • 打赏
  • 举报
回复
图片的Path出问题了吧?!
seraphim_houwei 2014-10-30
  • 打赏
  • 举报
回复
打包的时候,图片没有包含进去吧。 解压缩一下,看看图片在里面吗?
humanity 2014-10-30
  • 打赏
  • 举报
回复
独立运行的 Java 程序也可以远程调试的,估计是那个 ImageIO.read 时碰到了异常。

在启动你的程序的 jvm 参数中加上调试参数,如:

javaw.exe -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:9999 ...省略


然后在 Eclipse 创建 Remote Java Application 连接过去调试。

Sandy_csy 2014-10-30
  • 打赏
  • 举报
回复
Sandy_csy 2014-10-30
  • 打赏
  • 举报
回复 1
无语啊,发现CSDN的大牛都不见了,刚刚逛了下论坛,看见一个小白拿着main()函数放在类外边的红线问题在那问,居然大家抢着回答。我擦擦!!!!还我当年的CSDN啊
Sandy_csy 2014-10-30
  • 打赏
  • 举报
回复
我觉得图片应该是获取到了的,只是在显示上出了问题。可是本人才疏学浅找不到问题所在,请教各位。

//定义选项卡
public void defindTabFolder() {
		tabFloder = new JTabbedPane(JTabbedPane.LEFT);
		// JScrollPane scrollPane = new JScrollPane(tabFloder); //支持滚动
		// scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		tabFloder.setBounds(10, (int) height / 2 - 90, (int) width / 2 - 40,
				480);
		JPanel jp = new JPanel();
		JPanel jp1 = new JPanel();
	
		tabFloder.add("上装", jp);
		jp.setName("上装");
		tabFloder.add("下装", jp1);
		jp1.setName("下装");

                //获取商品信息,得到map
		XMLTool xml = new XMLTool();
		colthing = xml.parserXml("colthing.xml");
		polo = xml.parserXml("polo.xml");

                 //显示map中的商品信息
		showData(jp, colthing);
		showData(jp1, polo);

		add(tabFloder);
	}
//显示商品信息
public void showData(JPanel jp, HashMap<String, ColthingBean> data) {
		
		if (data != null) {
			Image img;
			String path = "";
			try {				
				if (jp.getName().equals("上装")) {
					path = "西服.PNG";
				} else if (jp.getName().equals("下装")) {
					path = "西裤.png";
				} else {
					path = "毛巾.PNG";
				}
				//System.out.println(path);
				img = ImageIO.read(this.getClass().getResourceAsStream(
						"/img/" + path));

				Set<String> set = data.keySet();
				for (Iterator<String> iterator = set.iterator(); iterator
						.hasNext();) {
					String key = (String) iterator.next();
					JButton jb = new JButton();
					jb.setText(key);
					jb.setIcon(new ImageIcon(img));
					setJButton(jb);
					list.add(jb);//将JButton放入集合中   以便添加事件
					jp.add(jb);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}
Magical茏 2014-10-30
  • 打赏
  • 举报
回复
没坐过桌面应用....用java做cs,效率不去c#

62,620

社区成员

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

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