wie kann man bei einem JInternalFrame die Titelleiste entweder unsichtbar machen oder wenigstens farblich anpassen. Alle diesbezüglichen Googleanfragen führen mich immer nur zu Java-Forum.org - und da kann man ja nicht mehr drauf zugreifen…
Ja, das wäre die spannende Frage: Was soll von dem JInternalFrame noch übrigbleiben, wenn man die Titelleiste wegnimmt?! NUR die Border für Größenänderungen? Oder sollen die Max/Min/Restore-Buttons oben rechts “irgendwie” erhalten bleiben? (Sowas geht schnell ans LaF, und könnte etwas frickelig werden, aber eine konkrete Idee dazu habe ich spontan nicht…)
[QUOTE=SoEinTyp] Alle diesbezüglichen Googleanfragen führen mich immer nur zu Java-Forum.org - und da kann man ja nicht mehr drauf zugreifen…
.[/QUOTE]
Man kann bei Google unter jedem Suchergebnis auf diesen kleinen Pfeil drücken und dann die Seite aus dem Cache von Google aufrufen Besser als nichts
Es soll je nach Button-klick uber den ActionListener ein anderes Internes Frame aufgerufen werden. Daher kommt, zumindest nach meinem Wissensstand eine Reihe von JPanels nicht in Frage, zumindest habe ich es nicht hin bekommen…
Das Kreuzchen zum schließen sollte kann gerne erhalten bleiben, aber die breite Titelleiste die ich farblich nicht anpassen kann stört mich.
Vielleicht mal einen Schritt zurück: Du weißt, dass ein JInternalFrame sowas wie ein „ganz normales Fenster“ ist, nur eben auf einem JDesktopPane?! Die sehen so aus, wie Fenster eben aussehen. Willst du vielleicht nur das LookAndFeel umstellen?
Vielen Dank schon einmal für Deine Mühe Marco13. Verzeih, das habe ich mich wohl schlecht ausgedrückt. falls das unhöflich war bitte ich um Entschuldigung. Ich bin noch ein ziemlicher Anfänger und lerne beim machen dazu. Viel weiss ich über JInternal Frames nicht.
Wahrscheinlich habe ich Dich nicht richtig verstanden, denn als ich Deinen Code in die Main Methode gesetzt habe (den letzten Teil muss ich löschen, da das Programm sonst nicht ausführbar war), haben lediglich die Buttons ihren Lichteffekt verloren. Die Internen Frames blieben aber wie sie sind.
Was ich eigentlich mochte ist, dass das JInternal Frame gut zu meinem angedachten Layout passt (was immer auch aus meinem Plan werden wird…) und leider will die graue Titelleiste mit den vielen Punkten und dem Fenstersymbol da irgendwie nicht richtig dazu passen. Falls es eine Alternative zu den internen Frames gibt (JLabel funktionieren wohl nicht) waere mir das natürlich auch recht.
Ich versteh’ wohl den entscheidenden Punkt nicht. Die JInternalFrames sehen genauso aus, wie ein normales Fenster - etwa wie in dem Bild von http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html . Man kann einige der Symbole ausblenden, indem man ihn nicht-maximizable/minimizable/resizable/closable macht. Aber eine komplett andere Titelleiste (!?) ist erstmal nicht vorgesehen. Möglich ist das natürlich alles, aber … eine Methode wie
internalFrame.letTheTitleBarLookHowIWantIt(true);
gibt’s eben leider nicht
Schade, denn den Befehl fände ich persoenlich sehr praktisch…
Damit ist mein Frage im Grunde beantwortet. Ich bekomme die Titelleiste wohl nicht raus, was auch erklärt, warum in der API diesbezüglich nichts stand. Daher habe ich zwei folgefrage:
Gibt es eine Alternative zu JInternal Frame, die ich bei Buttdruck in einem anderen Bereich anzeigen (und schliessen) kann?
Kann ich die Farbe und das Aussehen der Titelleiste ändern, damit wenigstens die Punkte und das Fenstersymbol verschwinden?
Man kann etliches beeinflussen und selbst basteln, aber … solange das Ziel nicht klar ist, weiß man eben nicht, wo man ansetzen sollte. Geht es nur um eine Zeichenfläche, die in einer anderen liegt? JLayeredPane, eigene (von JPanel abgeleitete) Klasse rein, fertig. Oder soll man die auch wie die InternalFrames am Rahmen festhalten und vergrößeren können? Und verschieben? Wo soll man sie dazu anfassen? Alles unklar.
Mit einem Trick ist das durchaus möglich. Aber dennoch ist die Frage offen, was Du eigentlich vorhast. Benötigst Du tatsächlich einen IFrame oder ist Dir einfach nichts besseres eingefallen.
iFrame.setUI(new BasicInternalFrameUI(iFrame) {
protected JComponent createNorthPane(JInternalFrame frame) {
return null;
}
});```
[QUOTE=SoEinTyp;23708]1. Gibt es eine Alternative zu JInternal Frame, die ich bei Buttdruck in einem anderen Bereich anzeigen (und schliessen) kann? [/QUOTE]
Grundsätzlich kann man beliebige Komponenten auf Buttonclick in beliebigen Bereichen anzeigen.
[QUOTE=SoEinTyp;23708]2. Kann ich die Farbe und das Aussehen der Titelleiste ändern, damit wenigstens die Punkte und das Fenstersymbol verschwinden?[/QUOTE]
Das wird u.U. recht komplex, da hier das LaF stark eingreift. Wobei man mit obigen Trick dem IFrame eine beliebige Komponente als Titel unterschieben könnte.
Du hast vollkommen recht Marco13, ich habe mich wirklich nicht nachvollziehbar ausgedrückt. In meinem Kopf macht das alles Sinn - aber ihr seid nun einmal außerhalb. … Es ehrt Dich, dass Du Dich dennoch so bemühst mir zu helfen, Vielen Dank.
Von JLayeredPane habe ich bis jetzt noch nichts gehoert, aber es scheint genau das zu sein, was ich wollte, denn es ist tatsaechlich so wie _Michael anmerkte. Mir fiel einfach nichts anderes ein als ein JInternalFrame zu verwenden.
So hat mal halt keine Möglichkeit mehr, ihn zu verschieben (außer Stückweise, mit der Border :D) oder zu schließen… aber vielleicht kann man sich dafür dann ja eine eigene “NorthPane” zusammenbasteln…