Swing Componenten werden auf Mac nicht angezeigt

  • Themenstarter Themenstarter vanny
  • Beginndatum Beginndatum
V

vanny

Gast
wie´s der Titel schon sagt, ich habe ab und an das Problem, dass die GUI auf nem Mac manchmal keine Widgets anzeigt, sondern nur den leeren Frame.

Bisher hat ein abschließendes repaint() immer geholfen, doch nun will auch das nicht mehr funktionieren;(.

ich hab schon mehrere LaF versucht, (ohne, systemLaF, Nimbus ...) aber nix bringt nen Erfolg.

Ich könnte jetzt wieder bei null anfangen und step by step testen um rauszufinden, an welcher Stelle es hapert, doch hab ich die Befürchtung, dass ich dann immer noch nicht abschließend weiss, warum das auftritt.

Könnte mir jemand den Grund nennen, damit ich das Problem gezielt vermeiden kann?

Gruß vanny

//Edit: ach ja xD. ich programmiere auf ner WindowsDose und da klappts alles wunderbar.
 
Unter Linux mit Compiz gab es mal einen ähnlichen Effekt. Swing-Fenster wurden nur noch leer angezeigt.
Da hat dann nur noch das Abschalten von Compiz bzw. der Desktop-Effekte oder ein Hack für die Grafikumgebung geholfen.
Das kann ich mir aber unter einer Qualitätssoftware wie MacOS bzw. OSX nicht vorstellen.
 
Naja wenn es an SWING liegen könnte mach ich einfach mal nen 1zu1 vergleich mit Swing und SWT, mal sehn was dabei rauskommt ... aber danke, is doch schon mal ein Ansatz ^^

zur not steig ich halt auf SWT um.
 
Zuletzt bearbeitet von einem Moderator:
Dass es an Swing liegt kann ich mir erstmal nicht vorstellen.
Vielmehr an der auf dem Mac eingesetzten VM. Du solltest dort die aktuelle JRE-Version und alle OS-Updates installiert haben.
Gut wäre auch mal ein Vergleich mit einem anderen Mac-System.
 
Also der Mac hat OSX 10.5.8 (JVM 1.5) hab ich auch drauf geachtet.

Naja vieleicht hat ja doch noch jemand des Rätzels Lösung parat. *hoff*

//Edit: ich hab 4 Macs zur Verfügung, nur leider sind die alle auf dem gleichen Stand ^^ und haben auch alle das gleiche System.
Die stehen alle auf Arbeit und ich kann mir leider nicht erlauben, daran rumzufummeln, da ich nicht der Admin auf arbeit bin, aber die werden schon alle up to date sein.
 
Zuletzt bearbeitet von einem Moderator:
@Paddelpirat

kann ich das auch irgendwie in meiner main lösen, da ich ne runnable.jar exportiere?
 
Ich glaube da kommst du nicht um eine .bat-Datei beim starten herum. Klappt es denn so?

Naja die .bat is fertig, nur nutzt die auf nem mac nix und der Tipp mit der .sh datei funzt auch grad nich ..ich bin am rödeln, wie ich das da zum laufen bekomme xD. *KopfRauch*

alles was ich bisher bekomme ist ein "Permission denied" ^^
 
Zuletzt bearbeitet von einem Moderator:
Ok also ich sitz jetzt hier seit einer Stunde und versuche mit .sh . command und irgendwelcher Terminaleingaben das ding auch nur ansatzweise zum laufen zu bekommen und das auch noch ohne Erfolg.

Ergo ist das keine Lösung, da ich davon ausgehen muss, dass die Kunden DAU sind und mehr, als entpacke die zip und starte die .jar kann ich nicht von denen verlangen.:bahnhof:

Dann beiß ich jetzt in den suaren Apfel, und werd mal StepByStep die Stelle suchen, ab der es nicht mehr funktioniert und mich dann nochmal durchmelden.

so looong Vanny
 
Zu den obigen Befehlen könntest du evtl noch versuchen sie über folgenden code zu ändern:

Java:
Properties p = System.getProperties();
p.put("sun.java2d.d3d", "false");

Ansonsten fällt mir da gerade auch nichts mehr ein, sorry.
 
Mach doch mal zum vergleich ne mini swing anwendung und teste erstmal ob die funktioniert.

Weil ich habe nen Swing programm das problemlos auf MAC's funktioniert. Kann ja auch nen konfigurationsfehler des Macs sein, euer admin ist ja auch nur nen Mensch.
 
ok also ich hab ein JFrame, der nur 4 Flaggen zeigt um die Sprache auszuwählen, der is undecorated(true) und kommt auch auf dem mac.
danach wird geprüft, ob eine datei vorhanden ist.
Wenn ja, dann wird der setupwizzard gestartet um einiges Zeugs einzustellen.
Und eben genau dieser ist dann leer, obwohl ich bis auf die Undecorated geschichte nix anders hab ausser natürlich mehr widgets und methoden.

wenn ich dem spaßeshalber auch mal die Deko klau nutzt des aber nüx . ^^

also darum sag ich ja ich muß echt schritt für schritt aufbauen und immer wieder testen.
 
Hmm,

mysteriös, ich hab jetzt den Stand erreicht und immer mal wieder getestet, und irgendwie is der Fehler jetzt nicht aufgetreten:autsch:

Ich hab zwar 1-2 Optimierungen eingebaut, aber nur was die Datenreferenzierung angeht in Sachen Swing ist nichts neu oder anders, dennoch funktioniert es jetzt.

komisch wa!?
 
Könnte es sich vielleicht auch um ein Speicherproblem gehandelt haben?
Ich habe einen Rechner, auf dem nicht alle GUI-Inhalte angezeigt werden (auch bei Java-unabhängigen Anwendungen), wenn zu viele Fenster geöffnet sind. Wenn ich einige schließe, klappt es problemlos. Ich schließe daraus, dass es vermutlich Engpässe bez. RAM oder Graphikspeicher gab ...
 
So ich buddel den Thread hier nochmal aus und markiere ihn dann auch als erledigt.

Ich sollte mal wieder fix ein kleines Programm für den Mac schreiben und hab in weiser Voraussicht gleich mal nach den ersten GUI-Schritten getestet und zack da war das Problemchen wieder.

Ich habe dann mit meinen JDK-Versionen rumgespielt, EDT(mit und ohne / wait und later), etliche LaF-Einstellungen probiert, mit und ohne repaint() versucht und am Ende war es dann mit einem einfachen abschließenden validate() getan.😳

Naja ich habe nicht die Wurzel des Übels packen können aber immerhin eine Lösung gefunden, welche ich euch nicht vorenthalten wollte.

So loooong Vanny
 

Zurück
Oben