java程序,new ImageIcon(getClass().getResource("/images/密码登陆.jpg")),在导出jar后,jar包里面没有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序,new ImageIcon(getClass().getResource("/images/密码登陆.jpg")),在导出jar后,jar包里面没有相关的知识,希望对你有一定的参考价值。

其中我的路径是:src/com/zys/dariyandtank,图片都在images里面,images是在dariyandtank中,和class文件在一起

参考技术A 那你路径不对了啊“src/com/zys/dariyandtank/images.密码登陆.jpg”因为你的图片不是在web-inf下面所以你要引用绝对路径。如果在web-inf下面则直接使用/images.密码登陆.jpg就可以了追问

那应该改为什么样的呢?求赐教!

参考技术B 把图片也打到jar包中就可以了。追问

怎么打到包里去啊?我用eclipse自动export出来的jar里面没有图片,要怎么搞?

追答

export,时有选 项啊,打包时包含那些文件。

参考技术C 你没打成jar包之前能找到这个图片,能显示吗?
不过打成jar包的话,应该会有啊,和图片路径无关啊。
是不是你的工具有问题、。换个打jar包的方法吧。追问

我是用eclipse来export的,在eclipse下run能正常显示

追答

java下的?
那你看看,把图片给塞到jar包里吧。

参考技术D 你用什么软件打的jar,我不清楚,你可以把jar用winrar打开,把图片按照原来的结构放进去即可,
我都是用winrar打jar包的!追问

什么叫做“把图片按照原来的结构放进去”?

追答

这个是我的jar包结构,我的图标全在icon里面,你看下你的jar是否也把图片打包到jar中,没有的话,添加的里面即可,我只能给你解释到这里了!

这个截图是我的jar包,用winrar打开的截图!

ImageIcon 被压扁的颤动

【中文标题】ImageIcon 被压扁的颤动【英文标题】:ImageIcon squished flutter 【发布时间】:2021-06-24 11:08:29 【问题描述】:

我正在构建一个颤振的网络应用程序,我需要做一些看起来像这样的东西:,所以为此我使用了一行。我就是这样做的:

            Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              height: height / 25,
              width: width / 18,
              decoration: BoxDecoration(
                  border:
                      Border.all(width: 2, color: CustomColours.lightBlue),
                  borderRadius: BorderRadius.all(Radius.circular(10))),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Text('1000   '),
                  ImageIcon(
                    AssetImage(
                      'lib/assets/fonts/icons/Group 1.png',
                    ),
                    color: Colors.white,
                  )
                ],
              ),
            ),
            Container(
              height: height / 25,
              child: FittedBox(
                fit: BoxFit.fitHeight,
                child: IconButton(
                    icon: Icon(
                      Icons.add_circle_outline,
                      color: CustomColours.lightBlue,
                    ),
                    onPressed: () 
                      print('add');
                    ),
              ),
            ),
          ],
        ),

但是,结果是这样的,图标无法正常工作: 这是我使用的图标:(它是 50*50 像素)。

我能做些什么来解决这个问题?非常感谢!

【问题讨论】:

【参考方案1】:

您可以将自定义图标扭曲到 FittedBox 小部件并将其尺寸设置为 Container 并将其包装到 FittedBox 父级以实现此场景。因为 FittedBox 从其父小部件中获取 constraints。我没有你的自定义图标。所以,我用框架图标来表示它。

return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Container(
          height: 50,
          width: 100,
          decoration: BoxDecoration(
              border: Border.all(width: 2, color: Colors.lightBlue),
              borderRadius: BorderRadius.all(Radius.circular(10))),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                '1000  ',
                style: TextStyle(fontSize: 18),
              ),
              Container(
                width: 30,
                height: 30,
                child: FittedBox(
                  child: Icon(
                    Icons.adjust_sharp,
                    color: Colors.black,
                  ),
                ),
              )
            ],
          ),
        ),
        FittedBox(
          fit: BoxFit.fitHeight,
          child: IconButton(
              icon: Icon(
                Icons.add_circle_outline,
                color: Colors.lightBlue,
              ),
              onPressed: () 
                print('add');
              ),
        ),
      ],
    );

【讨论】:

以上是关于java程序,new ImageIcon(getClass().getResource("/images/密码登陆.jpg")),在导出jar后,jar包里面没有的主要内容,如果未能解决你的问题,请参考以下文章

Java:ImageIcon 与图像差异

如何在java中添加一个ImageIcon?此代码不起作用

使用 ImageIcon 磁贴在 JPanel 上进行主动渲染? #Java

Java - JFrame不显示ImageIcon

GIF ImageIcon 在 Java Swing 中不断闪烁

我如何将javax.swing.ImageIcon绘制为JavaFX .fxml呈现的用户界面?