Portal > Foren > Java > Desktop-Applikationen und Grafik > setDefaultLookAndFeelDecorated für JInternalFrame
Antwort
 
Themen-Optionen
Alt 02.06.2006, 10:53 Nach oben    #1
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard setDefaultLookAndFeelDecorated für JInternalFrame

Hallo,

ich hab eine Anwendung, in der ich sowohl für JFrame als auch für JDialog setDefaultLookAndFeelDecorated auf false setze. Diese Anwendung hat aber einen JDesktopPane mit JInternalFrames. Diese haben jedoch trotzdem die "dekorierte" UI. Wo kann ich die abschalten bzw. false setzen?

Lg
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.06.2006, 12:44 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Gar nicht, weil gibts nicht. Davon abgesehen ist "false" der Standardwert, du bräuchtest es also gar nicht aufrufen.

Was genau möchtest du? Einen nativen Look erreichst du, indem du das Plattform-LookAndFeel verwendest (zu empfehlen nur unter Windows und Mac - aber da gehören JDesktopPane und co. sowieso verboten!), oder möchtest du ein JInternalFrame komplett ohne Dekoration? Wenn du einfach nur deine eigene Dekoration verwenden willst, dann musst das UI-Delegate selbst schreiben (oh ja, das ist ein Spaß...).
Also: Was genau willst du machen?
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.06.2006, 13:49 Nach oben    #3
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard

Hmmpf...
also... wenn ich bei JFrame das decorated auf false setze, dann schauen die Frames bei mir (Windows) halt wie Windows-Fenster aus. Setze ich es auf true, ist diese (denke mal) java-eigene Dekoration eingeschaltet. Gleiches gilt für Dialoge. Mir gefällt ersteres aber besser. Sieht aber blöd aus, wenn alles im Win-Stil ist, aber die internen Fenster dekoriert...
Will nicht auf ein spezielles Plattform-L&F schalten (habich ja bisher auch nicht gemacht, sondern nur decorated auf false gelassen). Wär schade, wenn es keine einfachere Lösung für int. Frames gibt. Dann muss ich diese hässliche Dekoration einschalten, wenn es wenigstens einheitlich aussehen soll...

Lg
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.06.2006, 15:09 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Wenn ein JFrame/JDialog nicht vom LookAndFeel "decorated" wird, dann ist der Fensterrahmen nativ. Wenn du setDefaultLookAndFeelDecorated(true) aufrufst, dann wird der Fensterrahmen emuliert. Für das Aussehen ist dann ganz allein das LookAndFeel zuständig. Das LookAndFeel kann aber nicht so aussehen, wie die native Fensterdekoration (Ausnahme ist, wenn du das native LookAndFeel verwendest).

Für JInternalFrame gilt das so nicht. Dessen Rahmen wird immer emuliert. Es sieht also nur dann nativ aus, wenn du tatsächlich das native LookAndFeel verwendest.

Gibt also keine andere Möglichkeit.


Generell sollte man sich aber jedesmal, wenn man eine JDesktopPane verwendet, selbst ein Loch ins Bein schießen müssen. Nur des Lerneffektes wegen.
Brauchst du wirklich ein JDesktopPane? Dir ist bewusst, dass das benutzerunfreundlich und absolut überhaupt rein gar nicht cross-platform ist? Mac und UNIX-Nutzer kennen soetwas überhaupt nicht (mal abgesehen vom Fenstermanager). Die Frage ist also: Warum überhaupt sowas einsetzen?

Könnte dein Problem vielleicht besser mit einer JTabbedPane oder einem Docking-Framework gelöst werden?

Oh... und noch ein Wort zur LookAndFeel-Dekoration: Lass die Finger davon. Als ehemaliger Linux-Nutzer kann ich dir sagen, dass es unglaublich nervig ist, wenn irgendein Programmier-Heini meint, es sehe viel cooler aus, wenn er seine eigene Fensterdekoration einbaut. Dabei gehen mir als Anwender nämlich für mich essentielle Funktionen verloren (Shade, z.B. - oder Tabs unter Fluxbox). Es ist einfach unschön. Maximal unter Windows zu vertreten, kollidiert dann aber unter Umständen mit Shell-Replacements (bb4win, z.B.) oder erweiterten Shell-Funktionen (dm2). Es nervt einfach tierisch.

Fazit: Du hast ein Problem, dass wahrscheinlich deutlich einfacher durch eine alternative Lösungsstrategie gelöst werden könnte.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 11:18 Nach oben    #5
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard

Hi pago...

dass durch das false im decorated das native Fenster benutzt wird, war mir so nicht klar... vielen Dank erstmal dafür...
Zum JDesktopPane... Ich kenne definitiv mehrere Mac-Anwendungen, die DesktopPanes benutzen. Sie sind dann zwar meistens mit durchsichtigem Hintergrund, aber definitiv arbeiten sie mit internen Fenstern. Möglicherweise ist das bei anderen Betriebssystemen anders. Tabbed Panes sind imo für meine Anwendung weniger nützlich, da der Benutzer sicherlich zwei verschiedene Dokumente (bei mir sinds halt grafische Ausgaben) vergleichen möchte... und zwar mehr oder weniger auf einen Blick. Klar könnte ich jetzt die Über-GUI zusammenschustern (so wie bei Word etwa, wo man die Ansicht durch den Splitter teilen kann) aber dazu fehlt mir nun doch noch die Zeit... ich werde es einfach dabei belassen, überall decorated auf true zu setzen und mich an diese hässliche Dekoration zu gewöhnen...

Vielen Dank
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 13:06 Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Ja gut, den Mac betreffend stammen meine Infos jetzt nur aus der Anleitung von Apple für Java Entwickler.

Ich hatte eigentlich gedacht, dass es solche TabbedPanes wie bei Word als OpenSource gäbe, scheint aber doch nicht der Fall zu sein. Wenn's ne kommerzielle Sache ist, kann ich für den Zweck die JIDE-Components empfehlen.

Aber gut, dann mach's mit JDesktopPane. Und ein 3rd-Party LookAndFeel käme nicht in Frage? JGoodies, z.B. (meines schlage ich mal nicht vor, weil ich den Kram, um den's hier geht, nicht implementiert habe).
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.06.2006, 09:17 Nach oben    #7
Benutzer
 
Registriert seit: 05.12.2005
Beiträge: 62
Standard

Hmmmpf...
das jetzt alles noch auszuchecken und ggf. noch zu implementieren... da reichen die letzten 2-3 Wochen, die ich für diese Arbeit noch habe, wohl nicht aus. Zumal ich auch noch an anderen Stellen rumfrickeln muss.
Werd ich mir aber dann nach meiner Arbeit mal anschauen... für spätere Zwecke

THX
sayang
Sayang ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JInternalFrame Carsten Desktop-Applikationen und Grafik 4 18.02.2006 14:24
Bild in JinternalFrame mit JSrollPane taskin73 Allgemeine Java-Programmierung 5 08.08.2005 22:53
von JInternalFrame erben xeon Desktop-Applikationen und Grafik 5 07.07.2005 12:34
JInternalFrame und Canvas bezüglich Reihenfolge Hot-Thunder Desktop-Applikationen und Grafik 10 06.07.2005 20:56
Kindfenster im JInternalFrame -> max. Größe Ben Desktop-Applikationen und Grafik 12 16.06.2005 20:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:08 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44