Ich habe derzeit die DropShadowBorder
Klasse (die die javax.swing.border.Border
Klasse erweitert) aus der SwingX
Bibliothek, so ist dies eine Instanz eines regulären Border
. Ich möchte diesen Rand um meine undekorierte JFrame
zeichnen. Ich bin derzeit mit der folgenden Methode in meinen JFrame
die Grenze zu setzen:Java: Wie zeichne ich einen Rahmen um einen undekorierten JFrame?
DropShadowBorder b = new DropShadowBorder(Color.BLACK, 0, 10, 0.2f, 10, true, true, true, true);
this.getRootPane().setBorder(b);
Anmerkung: Ich bin mit dem Wurzelbereich des Rahmens an die Grenze zu ziehen, weil die Rahmengrenzen nicht unterstützt selbst.
Das Problem ist, dass die Grenzen im Innern des Bauteils gezogen werden selbst, wie man auf dem Bild unten sehen kann, ist die beschattete Grenze innen gezogen, gegen die Grenzen des Rahmens selbst:
Hinweis: Der (schattierte) Rahmen wird innerhalb des Rahmens gegen dessen Begrenzungen statt außerhalb des Rahmens gezeichnet.
Es spielt keine Rolle, welche Art von Grenze verwendet wird, alle sind innerhalb der JFrame
selbst gezeichnet.
Meine Frage ist: Ist es möglich, einen Rahmen um den Rahmen zu zeichnen, nicht nur innerhalb der Grenzen des Rahmens?
Eine Möglichkeit, die verwendet werden könnte, dieses Problem zu lösen, ist ein anderes undecorated Vollbild-Fenster zu schaffen, die transparent ist, das normale Fenster oben auf diese gesetzt wird. Dieses Vollbildfenster wird zum Zeichnen des Schattens verwendet, sodass der Schatten nicht im Bild selbst gezeichnet werden muss. Dies ist eine Lösung, um ein ähnliches Ergebnis zu erhalten, das ist nicht was ich möchte aber. Ich möchte einen Rahmen außerhalb des Rahmens zeichnen. Diese Art von Lösungen verursacht normalerweise andere Probleme.
'this.getContentPane() setBorder (b);', aber besser ist es setzen 'JPanel' mit' Borders' – mKorbel
'Ist Es ist möglich, irgendeinen Rahmen um den Rahmen selbst herum zu zeichnen, nicht um den Hauptbereich des Rahmens? '- Nein. Welches Problem versuchen Sie zu lösen? – camickr
Ich möchte meinem nicht dekorierten 'JFrame' einen Schatten hinzufügen. Ich habe derzeit eine Grenze, die den Schatten erstellt, wie Sie auf dem Bild in meiner Frage sehen können. Das Problem besteht darin, dass diese Grenzen innerhalb der Komponente gezeichnet werden, auf die der Rahmen festgelegt wurde. Auf diesem Bild wird beispielsweise der Rahmen innerhalb der Grenzen des Rahmens gezeichnet. Gibt es eine Möglichkeit, diese Schattengrenze auf die Außenseite des Rahmens zu zeichnen? Hinweis: Ich habe die Frage aktualisiert, um alles ein wenig klarer zu machen. –