Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ImagePanel是';在我的jar文件中显示netbeans_Java_Image_Swing_Netbeans_Embedded Resource - Fatal编程技术网

Java ImagePanel是';在我的jar文件中显示netbeans

Java ImagePanel是';在我的jar文件中显示netbeans,java,image,swing,netbeans,embedded-resource,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

我使用类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下的images目录中。提前谢谢

ImagePanel pan2 = new ImagePanel("src/images/tarif.png");
这段代码有效,我这样调用这个类

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

1) 到部署时,这些资源很可能会成为一种资源。在这种情况下,必须通过
URL
而不是
File
访问资源。有关形成
URL
的方法,请参阅标签的。2)
g.drawImage(img,0,0,null)
应该是
g.drawImage(img,0,0,this)
3)
public void paintComponent(Graphics g){
应该是
public void paintComponent(Graphics g){super.paingComponent(g);
@Andrew Thompson谢谢你的回复我按照你告诉我的更新了我的代码,它对我有效:)很高兴你把它整理好了。谢谢你的回复。:)
String path ="/images/tarif.png";
JPanel pan2=new BackgroundPanel(path);