GUI-Bilder einfügen

Basti4231

Bekanntes Mitglied
Hallo Leute,

ich habe jetzt hier schon mehrere Beiträge zu diesem Thema gelesen, aber ich habe es nicht geschafft, damit mein Problem zu lösen.
Mein einfaches Ziel ist es, ein Bild in meine grafische Oberfläche einzufügen und zwar auf der Position Center.

Hier mal ein bisschen Code:

Java:
package layouts;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class GuiMitAktion implements ActionListener {
    JButton button;

    public void los() {
        JFrame frame = new JFrame();
        button = new JButton("Zufallsliste ausgeben.");
        Font bigFont = new Font("serif", Font.TRUETYPE_FONT, 15);
        button.setFont(bigFont);
        button.addActionListener(this);
        ImageIcon myfile = new ImageIcon("Pfad des Bildes"); 
        JLabel lab = new JLabel((myfile));
        frame.getContentPane().add(BorderLayout.CENTER, lab);
        frame.getContentPane().add(BorderLayout.NORTH, button);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(550, 300);
        frame.setVisible(true);

    }

    public void actionPerformed(ActionEvent event) {
        ZufallsListen zufall = new ZufallsListen();
        String s = zufall.mixeListen();
        button.setText(s);

           }
}


Mein aktuelles Problem besteht darin, dass zur Zeit kein Bild angezeigt wird - dieses hat die Maße 90x90 und ist vom Typ .bmp. Der Pfad des Bildes, den ich hier aus privaten Gründen nicht anzeige, ist aber korrekt.

Vielen Dank schonmal für positive Beiträge :)

Basti
 

Michael...

Top Contributor
Der Pfad des Bildes ... ist aber korrekt.
Wenn dem so ist, müsste das Bild eigentlich angezeigt werden.
Lass doch mal folgendens ausgeben:
Java:
System.out.println(new File("Pfad des Bildes").exists());
Wenn das Bild innerhalb eines Packages liegt, sollte man es eher so laden:
Java:
new ImageIcon(getClass().getResource("/package/pfad/meinBild.png"));
 

Basti4231

Bekanntes Mitglied
Komisch, dass bei mir false ausgegeben wird. Zur Überprüfung des Pfades habe ich gerade das Bild rechtsgeklickt, Eigenschaften, den Ort kopiert, den Namen des Bildes mit der Endung .bmp hinzugefügt, das Ergebnis bleibt false.
Danach änderte ich den Typ in .jpg per Paint, dann den Pfad als Endung .jpg, gleiches Ergebnis - false. Ich verstehe das nicht...
 

Basti4231

Bekanntes Mitglied
Das Bild ist ohne Umwege normal mit Paint erstellt, den Namen habe ich auch gerade geändert zum Test. Einfach anstatt "d" ein "D" daraus gemacht, aber das Ergebnis änderte sich nicht.
Die Datei hat keinen Kopierschutz, keinen Schreibschutz oder sonstiges.
Sehr merkwürdig.
 

w0ddes

Bekanntes Mitglied
Was mir grade einfällt: Was haben Strings in Java als "Endzeichen" (Das "Zeichen", das das Ende des Strings signalisiert)? In C wäre das ja z.B.
Code:
 \0

vllt hast du sowas ja in deinem Dateipfad (durch Zufall) angegeben und er liest den String nicht bis zum Ende ..
 
Zuletzt bearbeitet:

Basti4231

Bekanntes Mitglied
Java:
ImageIcon myfile = new ImageIcon(
                "C:\\Dokumente und Einstellungen\\Basti4231\\Desktop\\Deck.jpg");

Das ist der aktuelle Code.
 

w0ddes

Bekanntes Mitglied
Also ich hab das ganze in nem Projekt von mir so gemacht:

Java:
 ... = new ImageIcon("images/logo/Bild.gif");

Das Bild befindet sich halt im Projektordner im Ordner "images" im Unterordner "logo" und ich benutze auch Windows.
Mein Vorschlag wäre: Ersetze einfach mal die "\\" durch "/"
 

w0ddes

Bekanntes Mitglied
wir reden hier grade ja nur von:
Java:
System.out.println(new File("C:/Dokumente und Einstellungen/Basti4231/Desktop/Deck.jpg").exists());
liefert false?

Dieser Aufruf testet ja nur ob das Bild überhaupt "existiert", die Größe spielt dabei keine Rolle.

EDIT: Okay, unter Windows is der Pfad "C:\\Dokumente und Einstellungen\\Basti4231\\Desktop\\Deck.jpg" schon richtig geschrieben.. glaube der nächste Beitrag könnte helfen ..
 
Zuletzt bearbeitet:

srea

Bekanntes Mitglied
Wenn die Methode .exists() false zurückgibt hat das ja auch nix mit dem frame, dem label oder sonstwas zu tun sondern die Datei gibt es einfach nicht bzw er kann nicht darauf zugreifen. Das heisst man muss den Fehler beim Pfad oder hier in der Gegend suchen.
 

Basti4231

Bekanntes Mitglied
Ja das ist logisch, dass es irgendwas mit dem Bild, oder dem Pfad selber zu tun haben muss.
Aber bisher gibt es noch keine Erklärung dafür.
 

Michael...

Top Contributor
Das mit dem Layout passt schon.
Versuch mal vorher das Bild per FileChooser auszuwählen, wenn das funktioniert dann liegt's an der Pfadangabe:
Java:
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(null);
JLabel label = new JLabel(new ImageIcon(fc.getSelectedFile().getAbsolutePath()));
 

Basti4231

Bekanntes Mitglied
Also damit bekomme ich ein Fenster wo ich dann den Pfad auswählen muss, wie erwartet. Ich wähle die Datei aus, die sich auf dem Desktop mit Deck.jpg befindet, bestätige dies mit OK. Danach bekomme ich wiederum die nette Anzeige "false".
 

w0ddes

Bekanntes Mitglied
Um nochmal auf "srea"'s Beitrag zu kommen: Benutzt du Eclipse oder ähnliches? Führst du die Programmierumgebung als Admin aus?
 

Basti4231

Bekanntes Mitglied
Ich habe eingeschränkte Rechte (Ich weiß nicht genau, was so alles nicht unter mein Recht fällt, was ich tun kann), denn ich bin nur ein User in einem Netzwerk.
Desweitern benutze ich Eclipse SE.
 

w0ddes

Bekanntes Mitglied
Das könnte das Problem sein, dürfte es aber nicht. Ich arbeit hier in der Firma auch mit eingeschränktem Konto (Windows XP) und Eclipse aber ich kann ohne Probleme auf Dateien zugreifen ..
 

Basti4231

Bekanntes Mitglied
Im Grunde genommen kann ich ja auch zugreifen ohne Problem. Ich kann alles mit dem Bild machen, was mir lieb ist. Aber anscheinend geht doch irgendwas nicht, ich weiß nicht womit es zusammen hängen könnte. Echt merkwürdig das ganze :D
 

w0ddes

Bekanntes Mitglied
Also das ist echt komisch..

Wenn du mal ne "testklasse" (siehe nachfolgend) machst, liefert die wirklich false?!
Java:
import java.io.File;

public class foo {

	public static void main(String[] args) {
		System.out.println(new File("C:\\Dokumente und Einstellungen\\Basti4231\\Desktop\\Deck.jpg").exists());

	}

}
liefert false?
 

w0ddes

Bekanntes Mitglied
Okay, ich bin raus. Hab keine Ahnung woran das liegt.
Wahrscheinlich ist's wieder so ein total doofer, kleiner Fehler den aber keiner findet.

Sorry
 

Basti4231

Bekanntes Mitglied
Es wird immer noch genauso "false" geliefert.
Die Datei ist aber auf dem Desktop, sie heißt auch so, wie im Pfadnamen angegeben.

Sehr komischerweise habe ich ein wenig rumgewurschtelt, keinen Plan, was genau jetzt anders ist, aber es klappt xD, in der Foo-Klasse wird nun true geliefert. Problemchen - das Bild wird nicht angezeigt.
 
Zuletzt bearbeitet:

w0ddes

Bekanntes Mitglied
Also in meiner Foo Klasse kann nichts angezeigt werden.. Der prüft wirklich nur, ob die Datei existiert, mehr nicht :D
 

Basti4231

Bekanntes Mitglied
Er findet mein Bild aber jetzt, er liefert true.

Hier ist jetzt der aktuelle Code von mir, vielleicht habe ich im Laufe der Zeit einen "Wurschtelfehler" gemacht.

Java:
package layouts;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class GuiMitAktion implements ActionListener {
    JButton button;

    public void los() {
        JFrame frame = new JFrame();
        button = new JButton("Zufallsliste ausgeben.");
        Font bigFont = new Font("serif", Font.TRUETYPE_FONT, 15);
        button.setFont(bigFont);
        button.addActionListener(this);
        // ImageIcon myfile = new ImageIcon(
        // "C:\\Dokumente und Einstellungen\\SeHoffma\\Desktop\\Deck.jpg");
        // JLabel lab = new JLabel((myfile));
        JFileChooser fc = new JFileChooser();
        fc.showOpenDialog(null);
        JLabel label = new JLabel(new ImageIcon(fc.getSelectedFile()
                .getAbsolutePath()));
        frame.getContentPane().add(BorderLayout.CENTER, label);
        frame.getContentPane().add(BorderLayout.NORTH, button);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(550, 300);
        frame.setVisible(true);
        System.out.println(new File(
                "C:\\Dokumente und Einstellungen\\SeHoffma\\Desktop\\Deck.jpg")
                .exists());

    }

    public void actionPerformed(ActionEvent event) {
        ZufallsListen zufall = new ZufallsListen();
        String s = zufall.mixeListen();
        button.setText(s);

    }
}
 

Basti4231

Bekanntes Mitglied
Also in meiner Foo Klasse kann nichts angezeigt werden.. Der prüft wirklich nur, ob die Datei existiert, mehr nicht :D

Ich glaube du hast mich falsch verstanden, denn ich meinte gleichzeitig, dass ich den Code angepasst habe und diesen ausgeführt habe, es ist mir auch klar, dass in einer so winzigen Foo-Klasse keine Gui mit passendem Bild von selbst sich ausführt :D
 

Basti4231

Bekanntes Mitglied
Das bedeutet, dass ich quasi das Bild für diesen Zweck eigentlich verwenden kann.
Aber irgendwas im Code, oder irgendeine technische Sache verhindert meinen Erfolg bislang ^^
 

w0ddes

Bekanntes Mitglied
Also am Code selbst find ich jetzt nichts .. Liegt aber vllt auch daran, dass ich den ganzen tag schon wieder nur Code sehe :D
Vllt sieht ja jemand was!

Edit: Vllt mal
Code:
JLabel.setOpaque(true);
oder die Size des Labels auf 90x90 setzen
 
Zuletzt bearbeitet:

Basti4231

Bekanntes Mitglied
Also das setzen der Labels hat keine Wirkung und wo ich die Methode von dir hinsetzen sollte im Code weiß ich auch nicht, wenn ich es einfach so in der Methode public void los() verwende kommt ein Fehler: "Cannot make a static reference to ther non-static method setOpaque(boolean) from the type JComponent"
 

Michael...

Top Contributor
Die Methode musst Du an einem Labelobjekt aufrufen. Sollte aber in Deinem Fall uninteressant sein, da damit nur festgelegt wird, ob der Komponentenhintergrund transparent ist oder nicht.

kannst höchstens mal setOpaque(true) und setBackground(Color.GREEN) an Deinem JLabel aufrufen, um festzustellen, ob das richtige JLabel auf der GUI verwendet wird. Aber wenn Dein Code so wie oben beschrieben ausschaut, gibt's ja nur ein JLabel.
 

Michael...

Top Contributor
Naja, jetzt hast Du wenigstens die Gewissheit, dass das richtige Label angezeigt wird ;-)

Ich habe jetzt mal Zeile 27 bis 31 bei mir ausprobiert und es funktioniert...
Was für Betriebssystem nutzt Du denn?
 

srea

Bekanntes Mitglied
Hast du mal dein Bild kleiner (also nicht von der Dateigröße sondern die "eigentliche" Größe) gemacht? Oder ne andere Endung versucht?
Ich hab bei mir mal ein wenig rumgespielt und hatte das selbe problem. Als ich dann das Bild kleiner gemacht hab gings.
Erklären kann ich mir das ganze nicht, probiers mal bitte aus.
 

Basti4231

Bekanntes Mitglied
Ich hatte gestern noch ausprobiert, Bilder aus meinem "Eigene Bilder"- Ordner zu laden.
Siehe da: Es hat geklappt xD
Als ich mein Bild Deck.jpg dorthin verschoben habe, klappte es natürlich nicht. Als ich die Größe auf die des Bildes, bei dem es funktionierte, änderte, wollte sich das Bild nicht zeigen ^^

Ich habe noch ein anderes Problem, was sich mir beim Einlesen einer .CSV-Datei ergab. Ich denke aber ich sollte ein neues topic dafür öffnen...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
D Bilder einfügen Java Basics - Anfänger-Themen 8
W Bilder einfügen? Java Basics - Anfänger-Themen 2
hdi Bilder jar-kompatibel einfügen Java Basics - Anfänger-Themen 5
D Bilder einfügen Java Basics - Anfänger-Themen 14
G Bilder in den Hintergrund eines Applets einfügen Java Basics - Anfänger-Themen 16
H Bilder in Panels einfügen? Java Basics - Anfänger-Themen 4
G Bilder in eine Applikation einfügen Java Basics - Anfänger-Themen 9
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Bilder in .jar Datei laden Java Basics - Anfänger-Themen 10
S Bilder zoomen Java Basics - Anfänger-Themen 0
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Bilder werden nicht angezeigt! Java Basics - Anfänger-Themen 6
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
M Bilder in .Jar exportieren Java Basics - Anfänger-Themen 2
T Bilder in ausführbarer Jar Java Basics - Anfänger-Themen 11
F 2 wechselnde Bilder Java Basics - Anfänger-Themen 4
D Verzögerung des Erscheinens der Bilder Java Basics - Anfänger-Themen 5
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
F Bilder aus jar einlesen Java Basics - Anfänger-Themen 10
J Bilder in Labels aktualisieren Java Basics - Anfänger-Themen 2
T jpeg Bilder zoomen.. Java Basics - Anfänger-Themen 2
C Bilder von Festplatte in Programm hochladen Java Basics - Anfänger-Themen 6
S Wo speicher ich bilder und sounds ab? Java Basics - Anfänger-Themen 4
C Threads Threaded Bilder bearbeiten Java Basics - Anfänger-Themen 8
K Bilder mit Eclipse exportieren Java Basics - Anfänger-Themen 1
J Slideshow zeigt bilder nicht an Java Basics - Anfänger-Themen 3
R Bilder aus Array als anklickbare Objekte Java Basics - Anfänger-Themen 3
K Export nach Jar mit Bilder Java Basics - Anfänger-Themen 2
L Wie bette ich Bilder in eine .jar ein? Java Basics - Anfänger-Themen 4
C Pfad für Bilder angeben Java Basics - Anfänger-Themen 11
B Bilder laden und drauf zugreifen[Eclipse] Java Basics - Anfänger-Themen 9
E ImageJ mehrere Bilder hintereinander bearteiten Java Basics - Anfänger-Themen 2
H Bilder ohne Verlust speichern Java Basics - Anfänger-Themen 2
J Ladebalken anzeigen während Bilder geladen werden Java Basics - Anfänger-Themen 2
R Bilder positionieren Java Basics - Anfänger-Themen 5
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
4 4kb bilder Java Basics - Anfänger-Themen 5
Q Pfadangabe für zu speichernde Bilder Java Basics - Anfänger-Themen 2
B Bilder speichern (jpg, gif, jpg) Java Basics - Anfänger-Themen 4
S Bilder einladen Java Basics - Anfänger-Themen 26
B Aus einem Eclipse Projekt eine .jar - keine Bilder drin Java Basics - Anfänger-Themen 7
G Bilder in Jar anzeigen lassen Java Basics - Anfänger-Themen 23
T Bilder in der jar-datei Java Basics - Anfänger-Themen 10
H Zahlen Bilder zuordnen möglich? Java Basics - Anfänger-Themen 4
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
J Bilder von Objekten Java Basics - Anfänger-Themen 3
A Bilder in Eclipse speichern Java Basics - Anfänger-Themen 7
J Mit JS, Text und Bilder von Webseite verändern... Java Basics - Anfänger-Themen 10
S Input/Output Text und Bilder laden Java Basics - Anfänger-Themen 5
T Bilder werden in Jar nicht geladen Java Basics - Anfänger-Themen 10
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
D Bilder Laden, mit Eclipse ok, .jar nicht Java Basics - Anfänger-Themen 5
F Bilder aus .jar datei laden Java Basics - Anfänger-Themen 1
M Applet soll Bilder aus Ordner lesen Java Basics - Anfänger-Themen 9
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
F Bilder enfügen und Bewegen Java Basics - Anfänger-Themen 6
I Drehbare bilder in 3D Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
T JTextPane - setText kein kein neuladen der Bilder? Java Basics - Anfänger-Themen 8
A Bilder in Eclipse Java Basics - Anfänger-Themen 8
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
N Bilder Objekten zuweisen Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
N jar kann Bilder nicht finden(?) Java Basics - Anfänger-Themen 4
S Spiel automat -Bilder vergleichen Java Basics - Anfänger-Themen 3
R Gif Bilder flimmern Java Basics - Anfänger-Themen 10
P Signiertes JAR aber keine Bilder o0 Java Basics - Anfänger-Themen 6
S Bilder der Diashow werden in anderen Bildern angezeigt Java Basics - Anfänger-Themen 3
G Bilder aus dem Projekt Verzeichnis werden n. angezeigt Java Basics - Anfänger-Themen 7
C Bilder von Server zu Server kopieren über Webdav(Sardine) Java Basics - Anfänger-Themen 5
K Bilder "langsam" laden Java Basics - Anfänger-Themen 4
FreddyStepp Bilder zusammenfügen Java Basics - Anfänger-Themen 7
S Bilder vergleichen Java Basics - Anfänger-Themen 6
B Kann man im Thread Bilder laden? Java Basics - Anfänger-Themen 8
S Wo speichere ich Bilder für Applets (Netbeans) Java Basics - Anfänger-Themen 5
J Mehrere Bilder laden Java Basics - Anfänger-Themen 6
S Mehrere Bilder bewegen Java Basics - Anfänger-Themen 5
B Bilder zeichnen Java Basics - Anfänger-Themen 2
D Bilder in JFrame laden Java Basics - Anfänger-Themen 8
L Frage bzgl. Threads beim Bilder laden Java Basics - Anfänger-Themen 3
S Bilder in AWT Java Basics - Anfänger-Themen 7
J java applets bilder? Java Basics - Anfänger-Themen 11
manunana89 Bilder auf JFrame/beste Möglichkeit??? Java Basics - Anfänger-Themen 5
K Bilder werden nicht angeziegt !!! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben