Bitte beachten Sie: Obwohl ich Swing und MacOS hier erwähne, hat diese Frage nichts mit beiden zu tun: Ich gebe ihnen nur ein konkretes Beispiel dafür, was ich versuche zu tun .Einstellen der Systemeigenschaften in Groovy
Ich versuche, eine Systemeigenschaft den groovigen Weg zu setzen. Wenn Sie eine Swing-Anwendung auf einem Mac entwickeln, ist es üblich, die folgende Systemeigenschaft zu setzen, so dass Ihre Swing-App-Menü der gleichen wie typische Mac-Applikationen aussieht:
System.setProperty("apple.laf.useScreenMenuBar", "true")
Als ich nenne das in meiner main
Methode Es hat den gewünschten Effekt (die Menüleiste wird von JFrame
abgezogen und am oberen Bildschirmrand fixiert).
Aber wenn ich gehen, um zu versuchen und diesen Anruf groovier zu machen:
System.properties['apple.laf.useScreenMenuBar', 'true']
es funktioniert nicht. Keine Ausnahmen, es funktioniert einfach nicht mehr und hat nicht den gewünschten Effekt in der Benutzeroberfläche. Warum und was kann ich tun, um es zu beheben?
Oder 'System.properties.'apple.laf.useScreenMenuBar‘ = true' –
@tim_yates, ja könnte genauso gut sein . – Opal
Danke @Opal (+1) - interessanterweise funktioniert keiner von diesen. Sie können sehr wohl eine gültige Groovy-Syntax verwenden, aber Swing (oder Mac OS) lehnt es aus irgendeinem Grund ab, sie zu verpflichten. Damit meine ich, dass die Menüs unabhängig vom JFrame/Hauptfenster nicht als "gepinnt"/angedockt an den oberen Bildschirmrand angezeigt werden. Aber wenn ich die Standard-Java-Syntax verwende (mit 'setProperty (...)'), werden die Menüs * gepinnt/angedockt. Seltsam ... – smeeb