我使用类 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/