![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Benutzer Registriert seit: 05.12.2005
Beiträge: 62
|
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 |
| | |
| | Nach oben #2 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.110
|
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? |
| | |
| | Nach oben #3 |
| Benutzer Registriert seit: 05.12.2005
Beiträge: 62
|
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 |
| | |
| | Nach oben #4 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.110
|
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. |
| | |
| | Nach oben #5 |
| Benutzer Registriert seit: 05.12.2005
Beiträge: 62
|
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 |
| | |
| | Nach oben #6 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.110
|
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). |
| | |
| | Nach oben #7 |
| Benutzer Registriert seit: 05.12.2005
Beiträge: 62
|
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 |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ä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 |