Bild in Jar-File mit ImageIO

JStein52

Top Contributor
Geht das denn nicht ?

Code:
Image image = ImageIO.read(getClass().getResourceAsStream("bild.jpg"));
 
ich hab es versucht aber es funktioniert nicht.
Code:
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class drawing extends JPanel {

    public drawing(){
       
        try{
            Var.image = ImageIO.read(getClass().getResource("b1.png"));
        }catch(Exception e){
        }
}
    public void paintComponent(Graphics g){
        super.paintComponent(g);
       
        Graphics2D g2d = (Graphics2D)g;
       
       
        g2d.drawImage(Var.image, 0, 0, 800,600,null);   
       
        repaint();
    }
}
 

JStein52

Top Contributor
Also das Laden funktioniert auf jeden Fall so. Was dann mit deinem Image weiter passiert bzw. nicht funktioniert weiss ich nicht. Was kriegst du für einen Fehler ?
 
nun wird bei mir diese Meldung ausgegeben
Code:
Exception in thread "main" java.lang.NullPointerException
    at javax.swing.JComponent.paintComponent(Unknown Source)
    at test.drawing.paintComponent(drawing.java:13)
    at test.drawing.<init>(drawing.java:33)
    at test.Main.main(Main.java:10)
was soll ich machen?
 

Meniskusschaden

Top Contributor
Was meinst du mit angezeigt?
Ich meine damit, dass dein Panel möglicherweise auch dann nicht sichtbar ist, wenn das Bild erfolgreich geladen wird. Ersetze doch einmal testweise deine paintComponent-Methode durch eine ganz einfache, wie beispielsweise die folgende:
Java:
@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    setBackground(Color.BLUE);
}
Wenn dann kein blaues Panel zu sehen ist, stimmt etwas nicht.

Inzwischen hast du aber ja offenbar eine Fehlermeldung, der man erst einmal nachgehen kann.
 
Code:
package test;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class drawing extends JPanel {

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        setBackground(Color.BLUE);
    }
   
    public drawing(){
       
       
        try{
            Var.image = ImageIO.read(getClass().getResourceAsStream("b1.png"));
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("Fehler");
        }
        paintComponent(null);
}
   
}
 

Meniskusschaden

Top Contributor
Hab rumprobiert was ne Idee was man machen kann?
Der Aufruf paintComponent(null) ist garantiert falsch und verursacht wohl die Fehlermeldung. Hast du noch eine Fehlermeldung, wenn du das wieder entfernst? Falls ja, bitte posten. Falls nicht, könntest du meinen Vorschlag aus Posting #25 ausprobieren, um zu testen, ob deine GUI überhaupt wie erwartet dargestellt wird. Vielleicht liegt das Problem dort und es wird bereits erfolgreich gezeichnet.

Wie kann ich die paint Methode aufrufen?
Wenn nötig über repaint(). Ich glaube aber nicht, dass es hier nötig ist.
 
Ich habe ein weiters Problem ich habe in meiner Gui versucht die Backroundcolour zu ändern ess gibt keinen Fehler trotzdem beliebt der Hintergrund unverändert. Gibt es eine Einstellung die da nicht aktiviert ist?
 
Code:
package test;

import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class gui {
static int weite,höhe;
static JFrame frame;
static JLabel lbl;

    public gui(){
       
        Font g = new Font("Times New Roman", 1, 29);
        lbl = new JLabel();
        lbl.setBounds(0, 260, 2000, 30);
        lbl.setFont(g);
        frame = new JFrame("Game");
        frame.setVisible(true);
        frame.setSize(Var.BREITE, Var.HÖHE);
        frame.setLocation(Var.x, Var.y);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);
        frame.addKeyListener(new Tasten());
        frame.add(lbl);
        frame.setBackground(Color.GREEN);
       
        }
   
}
 
Code:
package test;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class drawing extends JPanel {

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
       
        g.drawImage(Var.image, 0, 0, this);
       
       
    }
   
    public drawing(){
       
        paintComponent(null);
        try{
            Var.image = ImageIO.read(getClass().getResourceAsStream("b1.png"));
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("Fehler");
        }
}
   
}
so sieht das aus und das frame ist vissible.
 

Meniskusschaden

Top Contributor
Danke das mit der Hintergrundfarbe funkt.
Eigentlich hatte ich allerdings gemeint, das JPanel einzufärben (also drawing), damit man sieht, ob es erscheint.

Der entscheidende Code-Teil fehlt aber noch. Irgendwo erzeugst du doch dein gui- und dein drawing-Objekt. Dort müsstest du das drawing-Objekt auch deiner Oberfläche hinzufügen, was du möglicherweise noch nicht machst.
 
Code:
package test;

import java.awt.Color;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class gui {
static int weite,höhe;
static JFrame frame;
static JLabel lbl;

    public gui(){
      
        Font g = new Font("Times New Roman", 1, 29);
        lbl = new JLabel();
        lbl.setBounds(0, 260, 2000, 30);
        lbl.setFont(g);
        frame = new JFrame("Game");
        frame.setVisible(true);
        frame.setSize(Var.BREITE, Var.HÖHE);
        frame.setLocation(Var.x, Var.y);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);
        frame.addKeyListener(new Tasten());
        frame.add(lbl);
        frame.getContentPane().setBackground(Color.GREEN);
        frame.add(new drawing());
        }
  
}
Das ist meine gui trotzdem wird immernoch der Fehler ausgegeben

Exception in thread "main" java.lang.NullPointerException
at javax.swing.JComponent.paintComponent(Unknown Source)
at test.drawing.paintComponent(drawing.java:13)
at test.drawing.<init>(drawing.java:33)
at test.Main.main(Main.java:10)

ein Teil dieses Fehlers
paintComponent(null);
ich weis blos nicht was ich machen soll
 
Code:
package test;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class drawing extends JPanel {

   
    public drawing(){
       
       
        try{
            Var.image = ImageIO.read(getClass().getResourceAsStream("b1.png"));
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("Fehler");
        }
}
   
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
       
        g.drawImage(Var.image, 0, 0, this);
        setVisible(true);
       
        repaint();
    }
   
}
Ist das so richtig denn es funktioniert immernoch nicht.
 

Meniskusschaden

Top Contributor
setVisible(true) erst am Funktionsende aufrufen.
Das bezog sich eigentlich nicht auf drawing, sondern auf dein JFrame, also die Klasse gui. Sobald du es dort aufrufst, wird die Oberfläche gezeichnet. Zu dem Zeitpunkt hast du dein JPanel (drawing) aber noch nicht hinzugefügt, so dass es frühestens beim nächsten Neuzeichnen sichtbar wird. Das Neuzeichnen wird entweder manuell über repaint() ausgelöst, oder durch andere Ereignisse, wie beispielsweise eine Größenänderung des Fensters. Es ist also besser,setVisible(true)erst nach dem Hinzufügen des Panels aufzurufen, idealerweise eben am Ende des Konstruktors von gui.

Ist die Zeileframe.setLayout(null);noch enthalten? Es kann auch daran liegen, dass drawing nicht erscheint. Also solltest du es zumindest testweise mal entfernen.

Der Aufruf von repaint() am Ende von paintComponent() ist meines Erachtens sinnlos, denn an der Stelle ist ja ohnehin gerade neu gezeichnet worden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
H Bild in JAR File Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
P Bild bearbeiten Java Basics - Anfänger-Themen 9
Z Datenmatrix in Bild verwandeln Java Basics - Anfänger-Themen 4
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
E Bild vom FileChooser aus via ImageIcon in DB schreiben Java Basics - Anfänger-Themen 16
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
L Bild-Datein "zuschneiden" Java Basics - Anfänger-Themen 11
O DeviantArt-Bild Konverter: Fehler.. Java Basics - Anfänger-Themen 16
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
M Bild einbinden Java Basics - Anfänger-Themen 7
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
T Bild laden Java Basics - Anfänger-Themen 7
R Bild in GUI Java Basics - Anfänger-Themen 11
D Eclipse Juno zeigt Bild nicht bei Run Java Basics - Anfänger-Themen 3
Kenan89 Bild mit jar öffnen Java Basics - Anfänger-Themen 4
S Problem bei Bewegung von einem Bild! Java Basics - Anfänger-Themen 2
J Bild mit transparenter Farbe Java Basics - Anfänger-Themen 10
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
J Bild einfügen Java Basics - Anfänger-Themen 3
T ASCII Art von Bild erstellen. Java Basics - Anfänger-Themen 32
E Bild OS-unabhängig einbinden mit URL Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben