JPanel lädt nicht?!

Greg50007

Aktives Mitglied
Moin, ich mal wieder... ich werde heute noch irre...
Ich bastel mal wieder an meinem Programm und weiß nicht woran es liegt...
Ich habe verschiedene JFrames und JPanels, die durch einen Button (Zurück) "getauscht werden.
Bsp:
JFrame 1 und JFrame 2.
Wenn ich auf 1 bin kann ich auf 2 klicken und 1 wird ausgeblendet (klasse 2 aufrufen in der das frame ist, frame1.setVisible(false);)
und wenn ich auf 2 bin kann ich zurück auf 1. (klasse 1 aufrufen in der das frame ist, frame2.setVisible(false);)

Soweit so gut. Ansich hat das immer funktioniert und bis auf das eine Frame wo ich grade bin funktioniert es auch!
Ich klicke auf dem Button. Alles gut, frame und panel sind da. Ich gehe zurück und öffne es nochmal -> frame da, aber leer (also doch kein panel?!) klicke ich oben auf Vollbild, erscheint jedoch alles!!

Habt ihr eine idee woran das liegen kann? Wie gesagt bei allen anderen frames funktioniert es.

Und dann hänge ich gleich noch eine frage an: man kann ja in eclipse bilder speichern (im projekt so dass man darauf zugreifen kann)
Jetzt soll mein projekt eine eigene .exe werden. (ich weiß wie das geht...) aber da sind die bilder nicht bei... wie kann ich es schaffen die bilder bei der "installation" in dem Setup ordner zu speichern? Ich weiß ja nicht von wo aus ich darauf zugreifen muss... wisst ihr was ich meine?

So... ich hoffe ihr könnt mir helfen und wünsche schonmal einen schönen Sonntag.
Lg. Greg
 

mihe7

Top Contributor
Mal grundsätzlich: um zwischen zwei Panels hin- und herzuschalten bieten sich das CardLayout oder ein JTabbedPane an.

Zur Fehlersuche bietet es sich an, ein minimales Beispiel zu erstellen und ggf. zu posten. D. h. man schreibt ausführbaren Code, der gerade noch so viel enthält, dass das Problem auftritt. Meist findet man dabei schon den Fehler. Ansonsten einfach hier einstellen.
 

Greg50007

Aktives Mitglied
ok... es auf das minimalste zu reduzieren hat geholfen... der fehler war soo dumm ._. keine ahnung warum das passiert ist...
ich hab das JFrame vor der public static void definiert, das hat wohl zu einem fehler geführt... (in der public static void funktioniert es jetzt!)

Hast du auch eine Idee wie ich das mit den Bildern machen kann?

Also wie bereits gesagt: ich will für mein Programm eine art "Installations Setup" machen. Soweit so gut. Da in meinem Programm verschiedene Bilder vorkommen hatte ich den speicherort dafür bis jetzt immer fest definiert. ("D://Ordner//MeinBild.jpg)
Aber wenn der Benutzer das Programm installiert weiß ich ja nicht WO der startordner ist. Also dachte ich ich kann die Bilder in eclipse direkt speichern... auf die kann er aber scheinbar nicht in der .exe zugreifen. hast du oder habt ihr eine lösung dafür?
 

mihe7

Top Contributor
Hast du auch eine Idee wie ich das mit den Bildern machen kann?
Wenn es sich um Ressourcen handelt, werden diese im Jar mit abgelegt. Dann kann man via Class#getResource() bzw. getResourceAsStream() darauf zugreifen. Je nachdem, welche IDE bzw. welches Build-Tool Du verwendest, legt man dazu die Bilder in der Regel entweder im normalen Source-Path oder (wie bei maven) in einem entsprechenden Resource-Folder ab. Was ich nicht weiß: wie es sich verhält, wenn Du eine .exe daraus machst (habe ich noch nie gemacht, da das den Sinn von Java doch etwas untergräbt).

Hier noch ein Post dazu: https://www.java-forum.org/thema/pfadangabe.156951/page-2#post-1182271
 

Greg50007

Aktives Mitglied
Danke für die ansich ausführliche Antwort.
ansich erscheint es logisch... aber ich hab es noch nicht geschafft.
Ich habe die Bidler jetzt mit:
lupe.getClass().getResource("/images/lupe.jpg");
definiert. Aber ohne erfolg. Kannst du mir vielleicht eine genauere erklärung geben?

11797

hier sieht man (hoffentlich) nochmal wie die Bilder gespeichert wurden und mein versuch!
Danke nochmal und ich hoffe auf weitere Antworten!
 

mihe7

Top Contributor
Wenn Du getResource("/images/...") schreibst, muss die betreffende Ressource (das Bild) auch einem Paket images liegen. Leg mal unter Deinem Default Package ein Verzeichnis/Paket "images" an und schieb Deine Bilder da rein.
 

mihe7

Top Contributor
Dein images-Ordner ist an der falschen Stelle. Zieh den mal in das Default Package.

EDIT: sehe gerade, dass Du auch /images.write.jpg geschrieben hast, da sollte dann auch /images/write.jpg stehen.
 

mihe7

Top Contributor
Oje, jetzt sehe ich das erst... der Code ist auch falsch. Erstens liefert die getResource()-Methode nur eine URL, die Du irgendwo verwenden musst. Zweitens ist in Deinen static-Variablen ein falscher Pfad angegeben (nämlich keiner). Drittens ist es ungünstig, Fremdklassen zum Laden eigener Ressourcen zu verwenden, da für diese ein anderer ClassLoader zuständig sein könnte.

Mal konkret:
Java:
static ImageIcon menü = new ImageIcon(App1.class.getResource("/images/Menü.jpg"));

EDIT: den ganzen anderen Code bzgl. getResource() kannst Du entfernen. Und bitte halte Dich an die Benennungskonventionen von Java: Bezeichner für Variablen, Parameter, Methoden schreib man in lowerCamelCase, Typnamen für Klassen, Aufzählungen etc. in UpperCamelCase.
 

Greg50007

Aktives Mitglied
Danke für die Tipps. Inzwischen weiß ich das eigentlich. Aber da der Code teilweise schon fast 3 Jahre alt ist... (da habe ich ange fangen zu programmieren) und ich gestehe: ich bin zu faul alles zu korrigieren.

Zu deinem Lösungsvorschlag: in eclipse so funktioniert das. Aber leider nicht wenn ich es zu einer exe mache. Da öffnet sich die exe nicht mal mehr.
Ist das was ich vorhabe denn so schwer?!
 

mihe7

Top Contributor
Zu deinem Lösungsvorschlag: in eclipse so funktioniert das.
Funktioniert es auch außerhalb von Eclipse? D. h. mach mal ein Runnable Jar draus. Dieses solltest Du per Doppelklick aus dem Explorer heraus aufrufen können (in jedem Fall aber per java -jar /pfad/zur/datei.jar)

Wenn Du die Jar auch noch auf einem anderen Rechner ausführen kannst und dort alle Bilder/Ressourcen richtig geladen werden, hast Du - was Java betrifft - alles richtig gemacht. Du kannst das natürlich auch lokal testen, dann musst Du aber sicher sein, dass die Anwendung keine Ressourcen über absolute Pfadangaben aus dem Dateisystem lädt und die Jar vorher noch an einen Ort außerhalb Deines Projektordners kopieren.

Ist das was ich vorhabe denn so schwer?!
Was eine native Windows-EXE-Datei betrifft, kann ich Dir das nicht beantworten. Das sind Spielereien, mit denen ich mich nicht beschäftige, weil ich darin keinen Sinn sehe bzw. noch keinen Bedarf hatte. Was Java betrifft, ist das sehr einfach: getResource() bzw. getResourceAsStream() verwenden, Ressourcen im Jar an die entsprechende Stelle packen (macht das Build-System der IDE), fertig.
 

mihe7

Top Contributor
Es war nicht die Frage, ob Du die .exe ausführen kannst (dass das nicht funktioniert, hattest Du ja schon geschrieben), sondern ob Du ein "Runnable Jar" außerhalb von Eclipse ausführen kannst. Erzeug in Eclipse mal ein solches Jar, schieb dieses an einen anderen Ort (anderes Verzeichnis, besser andere Platte, noch besser anderer Rechner) und schau, ob sich das dort ausführen lässt und die Bilder korrekt geladen werden.
 

Greg50007

Aktives Mitglied
Achso... sry, das hab ich wohl falsch verstanden, bzw. war schon ein schritt weiter, da die .exe ja aus der .jar gemacht wird :D
Geht aber auch nicht-> wenn ich sie ausführe kommt ein kleines Popup:

"A Java Exception has occured!"
 

mihe7

Top Contributor
Gut. Wenn Du die Jar nicht mit Doppelklick startest sondern in der Eingabeaufforderung per "java -jar /pfad/zur/datei.jar", dann solltest Du auch den Stacktrace sehen und so mehr über die Exception erfahren.
 

Greg50007

Aktives Mitglied
Mhh... ich bin ja noch schüler. Ich werde morgen mal meinen lehrer fragen. Obwohl images jetzt ein src.folder ist taucht er nicht in der jar auf. Ich muss sagen so langsam geht mir dieses (anfangs) al klein vermutete Problem auf die nerven -.-
Aber dir vielen dank für die Hilfe! und wenn du dich da nicht mal so mit auskennst doppelt dank das du es versucht hast!!
 

mihe7

Top Contributor
Ich muss sagen so langsam geht mir dieses (anfangs) al klein vermutete Problem auf die nerven -.-
Aber dir vielen dank für die Hilfe! und wenn du dich da nicht mal so mit auskennst doppelt dank das du es versucht hast!!
Das Problem ist nicht schwer zu lösen. Ich verwende nur kein Eclipse, daher kann ich Dir nicht auswendig sagen, wo Eclipse Deine Ressourcen erwartet - anscheinend nirgends und Du musst den Resource-Folder selbst hinzufügen. Hinzu kommt, dass Du in der IDEs beim Anlegen eines neues Projekts angeben kannst, welches Build-System verwendet werden soll.

Mal als Beispiel: wenn Du in NetBeans ein "normales Java-Projekt" erzeugst, wird ant als Buildsystem verwendet und alles (auch Ressourcen), was sich unter src befindet, wird in das Jar gepackt. Im alten Eclipse meine ich mich erinnern zu können, dass das dort auch der Fall war. Daher habe ich geschrieben, Du sollst mal versuchen, den images-Ordner nach src zu verschieben.

Erstellst Du dagegen (ebenfalls mit NetBeans oder Eclipse) ein Maven-Projekt, dann wird - tada - maven als Buildsystem verwendet. Maven hat eine etwas andere Verzeichnisstruktur (per Konvention). Die Java-Dateien befindet sich unter src/main/java und alle Ressourcen, die sich dort befinden, werden beim Zusammenpacken des Jars ignoriert. Die müssen dann nämlich unter src/main/resources gespeichert werden.

Ich habe jetzt eine alte Eclipse-Version aufgerufen. Du klickst mit der rechten Maustaste auf Dein Projekt, öffnest im Kontextmenü den Punkt "Build Path" und wählst dort "New Source Folder" aus. Dort gibst Du einen Namen, sagen wir mal "resources" an. Anschließend verschiebst Du Deinen images-Ordner in den resources-Ordner. Wenn Du dann das Jar baust, sollte der images-Ordner enthalten sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Bild in JPanel setzen Allgemeine Java-Themen 2
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
D JPanel in Mail darstellen Allgemeine Java-Themen 30
T Drucken von JPanel Allgemeine Java-Themen 4
Sin137 OOP Auf JPanel zugreifen, das einem JTabbePane hinzugefügt worden ist Allgemeine Java-Themen 10
M Threads JPanel eingeforen mit Threads Allgemeine Java-Themen 2
F JPanel Hintergrundbilder Allgemeine Java-Themen 1
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
S OOP JFrame als Observer eines JPanel Allgemeine Java-Themen 3
S JPanel einfügen in MainClass Allgemeine Java-Themen 4
S JLabel auf JPanel Allgemeine Java-Themen 10
G JPanel in JFrame Allgemeine Java-Themen 9
DStrohma Swing Nicht möglich für ein JPanel den Fokus zu bekommen? Allgemeine Java-Themen 9
S Swing JPanel werden nicht angezeigt Allgemeine Java-Themen 6
T iText Dokument in DB und dann in ein JPanel Allgemeine Java-Themen 5
P JPanel - JFrame Allgemeine Java-Themen 6
B JScrollPane und JPanel: Scrollen nur nach Größe des JPanels Allgemeine Java-Themen 2
Z Dynamisches JPanel Allgemeine Java-Themen 10
J Arbeiten mit Punkten in einem JPanel Allgemeine Java-Themen 3
H JPanel direkt in PDF umwandeln Allgemeine Java-Themen 2
L JPanel schraffiert,contour oder sonst was? Allgemeine Java-Themen 3
G Componenten auf JPanel disablen Allgemeine Java-Themen 3
MQue Raster auf einem JPanel Allgemeine Java-Themen 8
S Lässt sich eigne JPanel Klasse in ein Array "stecken&qu Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
T JPanel to Image? Allgemeine Java-Themen 6
MQue JPanel Allgemeine Java-Themen 8
P JPanel/Zoom Allgemeine Java-Themen 2
M Neues JPanel in JFrame einbinden Allgemeine Java-Themen 6
L JPanel(bzw.) Panels transparent machen Allgemeine Java-Themen 7
T Allgemeinklasse zu JPanel, JButton. Allgemeine Java-Themen 26
P JPanel in JPanel Allgemeine Java-Themen 3
P Browser in JPanel Allgemeine Java-Themen 3
MQue Komponenten einem JPanel hinzufügen Allgemeine Java-Themen 9
MQue JButton zu JPanel hinzufügen Allgemeine Java-Themen 7
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P JPanel in JFrame Allgemeine Java-Themen 2
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
M IExplorer in einen JPanel öffnen und kontrollieren? Allgemeine Java-Themen 9
F While(true)-Schleife im JPanel Allgemeine Java-Themen 9
M ContentPane und JPanel Allgemeine Java-Themen 8
T JApplet - JEditorPane gegen JPanel tauschen Allgemeine Java-Themen 2
S JPanel zur Laufzeit verbergen bzw. wieder anzeigen lassen Allgemeine Java-Themen 4
G JComboBox mit aufklappbarem JPanel? Allgemeine Java-Themen 13
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
G JPanel auto scrollen Allgemeine Java-Themen 2
Tobero Download .jar von github lädt kaputte Datei runter Allgemeine Java-Themen 3
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
@SupressWarnings() Multilanguaging lädt immer falsch Allgemeine Java-Themen 5
Cromewell JavaFX FXML-File lädt unter Ubuntu nicht Allgemeine Java-Themen 7
N Fenster lädt nicht Allgemeine Java-Themen 28
M Wie lädt Eclipse die Javadoc Allgemeine Java-Themen 14
G JList lädt gesamten Datenbestand Allgemeine Java-Themen 5
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben