Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
EclipseKomponenten mal sichtbar, mal nicht - Code fehlerfrei
Hallo an alle!
Ich habe ein JFrame mitsamt einigen JLabels, JButtons und einem JTextField erstellt. Allerdings werden diese Komponenten jedes mal, wenn ich das Programm in Eclipse starte, unterschiedlich angezeigt. Der Code selbst jedoch ist fehlerfrei.
Beim ersten Start sind meist alle davon sichtbar und vorhanden, das Programm funktioniert einwandfrei. Die folgenden male ist plötzlich mein JButton unsichtbar, bis ich mit meiner Maus darüber schwebe, dann mein JTextField bis ich es anklicke, manchmal auch beides, je nach Belieben des Zufalls. Eine Verzögerung ist es allerdings nicht, ich kann warten solange es mir passt - die Komponenten bleiben unsichtbar. Sonst (mit dieser Ausnahme) läuft Eclipse allerdings gut, es startet auch recht schnell und dergleichen. Vielleicht weis jemand zufällig woran das liegt und wie ich es beheben kann? Es wäre echt sehr lieb!
P.S: Bitte zerreißt mich nicht zu sehr, sollte die Frage gänzlich dumm sein. Für mich sind Java und Eclipse noch absolutes Neuland. Ich will da ungern was falsch mit machen ... trotzdem viele Grüße!
Rufst du vielleicht setVisible(true) auf, bevor die Komponenten hinzugefügt wurden? Oder hast du kein super.paintComonent aufgerufen, wenn du paintComponent überschreibst?
Das wären jetzt meine Ideen. Ansonsten musst du Code posten. Wir können leider nicht hellsehen.
OT: Warum ist sich eigentlich jeder immer so sicher, dass sein Code fehlerfrei ist, wenn dennoch Fehler auftreten?
Hallo! Danke erst mal!
Nein, es ist alles setVisible(true), alles soweit hinzugefügt und paintComponent habe ich nicht benutzt. Ich bin absolut sicher, weil das Programm "eigentlich" korrekt arbeitet, wie beispielsweise beim ersten Start.
Ich starte Eclipse, starte das Programm - alles fehlerfrei, alles wird angezeigt. Ich beende das Programm über setDefaultCloseOperation(2); und starte es ohne Änderungen im Code vorzunehmen erneut mit dem Resultat, dass meine Komponenten z.T. verschwinden wie oben beschrieben.
Das Problem habe ich nicht nur in dem Projekt, sondern allen weiteren ebenfalls und leider wird es mit der Zeit recht lästig immer neu zu starten bis ich mal Glück habe und wirklich prüfen kann, ob meine Komponenten auch dort sind, wo ich sie haben will ... ich schätze da ist es überflüssig den Code zu posten, oder soll ich ihn dennoch schicken?
Am besten wäre es, du würdest ein kleines Beispielprogramm bauen, welches so wenig Code wie nötig beinhaltet und dennoch die Fehlfunktion beinhaltet. Falls es dort bei "uns" nicht auftritt, gehe ich von einer fehlerhaften Eclipse/Java Installation aus. Allerdings schätze ich letzteres als sehr unwahrscheinlich ein.
Hm, fürwahr. Ich denke, das war meine Schuld.
Irgendwie muss es tatsächlich an der setVisible Methode gelegen haben, auch wenn ich mich noch mal belesen muss, weshalb genau. Nach ein wenig Rumschieben funktioniert es wesentlich besser, auch wenn ich dann nicht verstehe, warum es beim ersten Ausführen und in ein paar anderen Programmen problemlos läuft ... ? Das sollte ich mir noch einmal aneignen.
Vielen Dank, jedenfalls! Tut mir Leid, dass die Frage letztlich so redundant war. Ich hatte eigentlich versucht gewissenhaft zu googeln, aber tendiere zu Dummheitsfehlern. Mein Verschulden, ich bin von Zeit zu Zeit ein wenig unbeholfen ... aber immerhin weis ich nun, wo ich ansetzen muss. Danke dir! Nächstes mal bin ich umsichtiger. ~
Offenbar ja nicht, sonst käme es wohl kaum zu solch ungewünschtem Verhalten. Fehlerfrei bedeutet nicht, dass der Code kompilierbar ist, sondern, dass er sich auch so verhält, wie es gewünscht ist.
Irgendwie muss es tatsächlich an der setVisible Methode gelegen haben, auch wenn ich mich noch mal belesen muss, weshalb genau. Nach ein wenig Rumschieben funktioniert es wesentlich besser, auch wenn ich dann nicht verstehe, warum es beim ersten Ausführen und in ein paar anderen Programmen problemlos läuft ... ?
Du hast immer noch die Möglichkeit hier beide Versionen zu posten. Einmal die korrigierte und einmal die, die den Fehler noch enthält. Am besten weist du dabei auch explizit auf die Unterschiede zwischen beiden Versionen hin, damit man sich nicht dusselig suchen muss. Dann findet sich hier auch bestimmt jemand, der dir erklärt, warum die ursprüngliche Variant nicht so funktioniert, wie du es erwartet hast.