Hallo alle zusammen,
natürlich pünktlich zum Release habe ich mir das neue OS für mein MacBook Air gekauft, Snow Leopard. Zuerst war ich sehr erfreut, denn NetBeans läuft problemlos, und Snow Leopard kommt mit Java 1.6 Update 15 (sowohl 32 als auch 64 Bit-Version).
Allerdings habe ich zwei Bugs gefunden, oder zumindest Probleme entdeckt, die ich vorher unter OS X 10.5 mit Java 1.6 (Update 13) nicht hatte.
1) Zum einen wird die Titelleiste eines Frames anders gerendert als vorher, was dazu führt, dass man die Routine für die Mac-typischen Toolbars vermutlich wieder ändern muss (siehe Screenshot unten).
2) Zum anderen wird die Mac-Apple-Menüleiste nicht korrekt aktualisiert. Ich habe ein Programm mit Standardmenüs, die immer angezeigt werden, und 8 weiteren Menüs, die jeweils zu einer Registerkarte (Tabbed Pane) gehören, wobei immer nur das Menü zur passenden Registerkarte angezeigt wird. Alle anderen Menüs sind auf "visible(false)" gesetzt. Die Apple-Menüleiste wird aber nicht immer korrekt neu gezeichnet. Für bestimmte Registerkarten braucht das Programm etwas länger, um Daten zu füllen. Dazu öffne ich einen modalen JDialog mit ProgressBar, sodass der User weiß, es passiert war. D.h.: Mein Hauptframe verliert ja in diesem Moment den Fokus, weil der JDialog geöffnet ist. Sobald der JDialog schließt und mein Hauptfenster wieder den Fokus kriegt, wird die Menüleiste aber nicht neu gezeichnet, was dazu führt, das wahlweise Menüs, die eigentlich auf visible(false) gesetzt sind, doch noch auftauchen, bzw. wenn sie wieder auf visible(true) gesetzt werden, doppelt erscheinen.
Siehe dazu folgender Screenshot:
Zwischen dem Menü "Ansicht" und "Fenster" dürfte nur ein einziges Menü sichtbar sein, nämlich das zur aktuellen Regitserkarte (tab aus dem TabbedPane).
Unter Windows/Linux/OS X 10.5 kein Problem, aber seit OS X 10.6 scheint die Apple-Menüleiste anders aktualisiert/neu gezeichnet zu werden. Sobald aber mein Programm ein neuen JFrame öffnet (der wieder eine eigene Menüzeile hat) und mein Hauptframe wieder den Fokus zurückkriegt (wodurch die Menüzeile noch mal neu gezeichnet werden muss), verschwindet dieser Fehler...
Weiß jemand, wie ich das mit den Menüs anders/besser lösen kann?
natürlich pünktlich zum Release habe ich mir das neue OS für mein MacBook Air gekauft, Snow Leopard. Zuerst war ich sehr erfreut, denn NetBeans läuft problemlos, und Snow Leopard kommt mit Java 1.6 Update 15 (sowohl 32 als auch 64 Bit-Version).
Allerdings habe ich zwei Bugs gefunden, oder zumindest Probleme entdeckt, die ich vorher unter OS X 10.5 mit Java 1.6 (Update 13) nicht hatte.
1) Zum einen wird die Titelleiste eines Frames anders gerendert als vorher, was dazu führt, dass man die Routine für die Mac-typischen Toolbars vermutlich wieder ändern muss (siehe Screenshot unten).
2) Zum anderen wird die Mac-Apple-Menüleiste nicht korrekt aktualisiert. Ich habe ein Programm mit Standardmenüs, die immer angezeigt werden, und 8 weiteren Menüs, die jeweils zu einer Registerkarte (Tabbed Pane) gehören, wobei immer nur das Menü zur passenden Registerkarte angezeigt wird. Alle anderen Menüs sind auf "visible(false)" gesetzt. Die Apple-Menüleiste wird aber nicht immer korrekt neu gezeichnet. Für bestimmte Registerkarten braucht das Programm etwas länger, um Daten zu füllen. Dazu öffne ich einen modalen JDialog mit ProgressBar, sodass der User weiß, es passiert war. D.h.: Mein Hauptframe verliert ja in diesem Moment den Fokus, weil der JDialog geöffnet ist. Sobald der JDialog schließt und mein Hauptfenster wieder den Fokus kriegt, wird die Menüleiste aber nicht neu gezeichnet, was dazu führt, das wahlweise Menüs, die eigentlich auf visible(false) gesetzt sind, doch noch auftauchen, bzw. wenn sie wieder auf visible(true) gesetzt werden, doppelt erscheinen.
Siehe dazu folgender Screenshot:

Zwischen dem Menü "Ansicht" und "Fenster" dürfte nur ein einziges Menü sichtbar sein, nämlich das zur aktuellen Regitserkarte (tab aus dem TabbedPane).
Unter Windows/Linux/OS X 10.5 kein Problem, aber seit OS X 10.6 scheint die Apple-Menüleiste anders aktualisiert/neu gezeichnet zu werden. Sobald aber mein Programm ein neuen JFrame öffnet (der wieder eine eigene Menüzeile hat) und mein Hauptframe wieder den Fokus zurückkriegt (wodurch die Menüzeile noch mal neu gezeichnet werden muss), verschwindet dieser Fehler...
Weiß jemand, wie ich das mit den Menüs anders/besser lösen kann?