java - ImagePanel 未显示在我的带有 netbeans 的 jar 文件中

标签 java image swing netbeans embedded-resource

我使用类 Imagepanel 在 netbeans 中向我的面板显示背景图像。从 IDE netbeans 6.8 运行它时它成功工作,但是当我从 jar 文件运行它时它不显示图像。请帮助我解决这个问题。感谢您的评论。 这是我的代码 ImagePanel.java

  import java.awt.Dimension;
  import java.awt.Graphics;
  import java.awt.Image;
  import javax.swing.ImageIcon;
  import javax.swing.JPanel;



 class ImagePanel extends JPanel {

   private Image img;

   public ImagePanel(String img ) {


      this(new ImageIcon(img).getImage());


}

   public ImagePanel(Image img) {
     this.img = img;
     Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
     setPreferredSize(this.getMaximumSize());
     setMinimumSize(size);
     setMaximumSize(size);
     setSize(this.getMaximumSize());
     setLayout(null);
   }

   @Override
    public void paintComponent(Graphics g) {
       g.drawImage(img, 0, 0, null);
     }

 }

我已经创建了我的面板,它位于另一个类似的类中,其中我的图像位于 src 下的图像目录中。提前致谢。

ImagePanel pan2 = new ImagePanel("src/images/tarif.png");

最佳答案

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

class BackgroundPanel extends JPanel
{
Image image;
public BackgroundPanel(String path)
{
try
{
image = (new ImageIcon(getClass().getResource(path))).getImage();
}
catch(Exception e){/*handled in paintComponent()*/}
}
    @Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
  g.drawImage(image, 0, 0, this);
}
}

这段代码有效,我这样调用该类

String path ="/images/tarif.png";
JPanel pan2=new BackgroundPanel(path);

关于java - ImagePanel 未显示在我的带有 netbeans 的 jar 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23449784/

相关文章:

java - 在类之间共享变量

java - 值为 "Function parameter"的 JSF DataTable

python - 如何使用 OpenCV 制作反向填充的透明矩形?

javascript - 如何在加载后使用 javascript 获取 <img> 内容类型

java - 颜色java类

java - Java Applet 可以使用打印机吗?

java - 如何使用 session 外观从远程客户端访问实体 bean

java - Android ViewModel 不断初始化 ArrayList

php - 通过 php 脚本加载图像时如何缓存图像

java - 在java中的GUI JFrame上定位图片