所以我有我自己的自定義JFrame
,在其中我試圖創建一個自動調整大小的圖像包含在我的JFrame
的內容JPanel
,frameContent
。我的JPanel
的佈局管理器是MigLayout
,所以我想我會再次創建一個JPanel
的子項,名爲ImagePanel
。這裏是我的ImagePanel class
結束什麼看起來像:Java Swing在MigLayout中添加圖像代碼似乎沒有工作?
class ImagePanel extends JPanel{
private static final long serialVersionUID = -5602032021645365870L;
private BufferedImage image;
public ImagePanel() {
try {
image = ImageIO.read(new File(getClass().getResource("../res/Title.png").toURI()));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, getWidth(), getHeight(), null);
}
}
現在,由於某種原因,它似乎並不像它實際上是「工作」。當我建立我的主要JFrame
的內容,我呼籲:
framecontent.add(new ImagePanel(), "pos 5% 5% 95% 45%");
這不是它沒有添加成分,與此代碼我能夠得到如下畫面:
請注意它是如何在灰色背景上勾勒出區域的,這意味着paintComponent(g)
方法正在運行,程序也不會輸出任何錯誤,這很奇怪,所以這意味着它找到了我的圖像,而不是放置它。
這裏是我的文件層次結構是什麼樣子:
Project Folder >
src >
res >
Title.png (Picture I want to retrieve)
guiwork >
Working.class (Class that is running instructions/ main)
得到了所有固定起來,這裏是自動調整的結果:
我已經用'if(image == null)System.out.println(「Image is null」);'來測試它,並且它沒有輸出''圖像爲null'... – tanishalfelven
@tanishalfelven:嗯,它輸出了什麼? –
@tanishalfelven:請參閱我的編輯,開始的那個,「哦,不要」。 –