Java ImagePanel是';在我的jar文件中显示netbeans
我使用类Imagepanel在netbeans中向我的面板显示背景图像。当从IDE netbeans 6.8运行它时,它会成功工作,但当我从jar文件运行它时,它不会显示图像。请帮助我解决此问题。谢谢您的评论。 这是我的代码ImagePanel.javaJava 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
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);