Bild einfügen

Hallo, ich versuche schon seit längerer Zeit ein Bild in mein JFrame einzufügen, habe das auch schon mit mehreren Methoden versucht aber es funtioniert nicht. Zum einen mit einem ImageIcon und einem BufferedImage. Ich habe das Bild in mein package und in meinen Dokumenten per Pfad angesteuert trotzdem funktioniert es nicht. Falls jemand das gleiche Problem hatte würde ich mich über eine Rückmeldung freuen.
 
Ich kenn 2 Möglichkeiten:
erstens du schreibst dein Bild auf eine Label und addest es dann zum Panel
Code:
Java:
ImageIcon picture = ImageIconUtils.ermittleFilmposter("dateiname.png");
    picture.setImage(picture.getImage().getScaledInstance(250, 300, Image.SCALE_REPLICATE));
    bild = new JLabel(picture);

  public static ImageIcon ermittleFilmposter(String dateiname) {
  File file = new File("ressourcen" + dateiname);
  if (file.exists()) {
  return new ImageIcon("ressourcen" + dateiname);
  } else {
  return new ImageIcon(PfadUtils.getBildPath() + "grumpycat.jpg");
  }
  }

Möglichkeit 2:
Du schreibst es in den Hintergrund...
Code:
Java:
public class JBackgroundPanel extends JPanel{

    /**
   *
   */
  private static final long serialVersionUID = 1L;
    private BufferedImage img;

    public JBackgroundPanel() {
        try {
          img = ImageIO.read(new File("pfad/dateiname"));
        } catch(IOException e) {
            System.out.print("Bild nicht gefunden");
        }
      }

    @Override
      protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
      }


    public static void main(String[] args) {
        JBackgroundPanel bgPanel = new JBackgroundPanel();
        JFrame f = new JFrame("JPanel mit Hintergrund");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(500, 500);
        f.setLocationRelativeTo(null);
        f.add(bgPanel);
        f.setVisible(true);

    }
Wichtig zu wissen ist noch, der Pfad (wenn er nicht absolut angegeben wurde) vom Projektordner ausgeht.
 
Ja hab ich. Der Code ist der gleiche den Viktim gepostet hat. Ich habe das Gefühl, dass irgendeine Einstellung nicht aktiviert ist da die Bilddatei nicht anscheinend nicht verarbeitet werden kann.
 
Ja hab ich. Der Code ist der gleiche den Viktim gepostet hat.
Also wenn ich dich jetzt richtig verstehe hast du deine Bilddatei in deinem Jar-File und willst sie von da laden ?
Falls ja geht das nicht mit dem Code von @Viktim . Du musst dir mal "getResource" anschauen. Ähnlich wie in diesem Beispiel:

Code:
JLabel jl = new JLabel(new ImageIcon(Fibonacci.class.getResource("images/Clubs.jpg")));

Anmerkung: Fibonacci ist bei mir der Name der Klasse 😉
 
Es hat mit getResource geklappt ? ImageIO bzw. File sind Filesystemoperationen und die fragliche Datei ist nun mal nicht im Filesystem zu finden.
Dateien aus deinem Jar-File musst du mit getResource oder getResourceAsStream einlesen
 

Zurück
Oben