這是我的第一篇文章,我的英文不太好,所以我希望你的傢伙 瞭解我有什麼問題,也希望我在這裏沒有做錯什麼。爪哇Swing圖像不顯示
我的問題:
我學習ATM擺動和它是如何工作的,但我一直有些問題,畫面其中犯規出現。 也許我不明白Swing的某些部分,所以我希望你能解釋我爲什麼圖片不加載,所以我可以學習它,做一個更好的工作:)
我嘗試了很多variatons,但我真的只失敗了,我不知道爲什麼。 我也試圖用圖形。
我的計劃:
的JFrame - >的JPanel - > JLabel的(有圖片,應該把它放在JPanel的或可能存在的JPanel的一個直接的方式)
test2.jpg是我的包文件夾和日食不要大喊一個錯誤。
另外我會JPanel像一個單獨的類,它不會擴展JFrame到桂類。
這裏是我的3類:
開始:
package verwaltungssoftware;
public class Start
{
//Start der Applikation
public static void main(String[] args)
{
System.out.println("Willkommen bei der Verwaltungssoftware fuer die Jobsuche");
new Gui();
}
}
桂:
package verwaltungssoftware;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class Gui
{
//Importiert Auflösung des Bildschirms
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
//Setzt Variablen für die Auflösung
public int aufloesungBreite = screenSize.width;
public int aufloesungHoehe = screenSize.height;
//Setzt die Berechnung des JFrame hauptfenster Location
private int breite = aufloesungBreite/2 - 640;
private int hoehe = aufloesungHoehe/2 - 400;
public Gui()
{
JFrame hauptfenster = new JFrame("Verwaltungssoftware fuer die Jobsuche");
hauptfenster.setDefaultCloseOperation(hauptfenster.EXIT_ON_CLOSE);
hauptfenster.setResizable(false);
hauptfenster.setLocation(breite, hoehe);
hauptfenster.setSize(1280,800);
hauptfenster.setLayout(new BorderLayout(5,5));
//Addet hauptpanel zum JFrame
Panel hauptpanel = new Panel();
hauptfenster.add(hauptpanel);
hauptpanel.setVisible(true);
hauptfenster.setVisible(true);
}
}
和麪板:
package verwaltungssoftware;
import java.awt.BorderLayout;
import java.awt.Image;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Panel extends JPanel
{
private static final long serialVersionUID = 6769810448979262470L;
//Variablen
Image icon1;
//Konstruktor
public Panel()
{
try
{
icon1 = ImageIO.read(getClass().getResource("test2.jpg"));
}
catch (IOException e)
{
e.printStackTrace();
}
JPanel panelhauptfenster = new JPanel();
panelhauptfenster.setLayout(new BorderLayout (5,5));
panelhauptfenster.setSize(1280,800);
panelhauptfenster.setLocation(0,0);
panelhauptfenster.setVisible(true);
JLabel myLabel=new JLabel();
myLabel.setLocation(0,0);
myLabel.setSize(panelhauptfenster.getWidth(),panelhauptfenster.getHeight());
myLabel.setIcon(new ImageIcon(icon1));
myLabel.setVisible(true);
panelhauptfenster.add(myLabel);
}
}
非常感謝你提前爲您的幫幫我。
'的getClass()。的getResource( 「test2.jpg」)'..是坐落在'verwaltungssoftware'目錄/ path其中'getResource'會希望找到它的形象呢? – 2014-11-04 05:33:59
我改正它的路徑時,它給了我一個錯誤: 線程「main」java.lang中的異常。IllegalArgumentException:input == null! (ImageIO.java:1388) \t at verwaltungssoftware.Panel。(Panel.java:25) \t at verwaltungssoftware.Gui。 (Gui.java:34) \t at verwaltungssoftware.Start.main(Start.java:13) picture is in package verwaltungssoftware –
Cronical
2014-11-04 05:37:20
好的哦。將getClass()。getResource(「test2.jpg」)因子放入源代碼中,然後放入答案並嘗試。上述代碼中的方法存在一些我已更正的缺陷。 – 2014-11-04 05:56:43