Java: Wie zeichnet man einen Rahmen um eine undekorierte JFrame?

Ich habe momentan das DropShadowBorder Klasse (die erweitert die javax.swing.border.Border Klasse) aus der SwingX Bibliothek, so ist dies ein Beispiel einer regulären Border. Ich würde gerne zeichnen diese Rahmen um meine stramme JFrame. Ich bin derzeit mit der folgenden Methode in meinem JFrame um die Grenze:

DropShadowBorder b = new DropShadowBorder(Color.BLACK, 0, 10, 0.2f, 10, true, true, true, true);
this.getRootPane().setBorder(b);

Hinweis: ich bin mit den root-Bereich des Rahmens, um den Rahmen zu zeichnen, weil die Rahmen nicht unterstützen, Grenzen sich selbst.

Das problem ist, dass die Grenzen gezogen werden, innerhalb der Komponente selbst, wie Sie sehen können, im Bild unten, die beschattet Grenze gezogen innen, gegen die Grenzen des Rahmens selbst:

Java: Wie zeichnet man einen Rahmen um eine undekorierte JFrame?

Hinweis: Die (schattiert) ist die Grenze gezogen, innerhalb des Rahmens gegen seine Grenzen, anstatt außerhalb des Rahmens.

Ist es egal, welche Art von Grenze verwendet wird, werden alle von Ihnen gezogen werden, innerhalb der JFrame selbst.

Meine Frage ist: Ist es möglich, ziehen Sie eine Grenze um den Rahmen, nicht nur im inneren gegen die Grenzen des Rahmens?


Einer Weise, die verwendet werden könnte, um dieses problem zu lösen, ist eine andere schmucklos Vollbild-Fenster, die transparent ist, die normalen Fenster ist auf der Oberseite von diesem. Das Vollbild-Fenster zu ziehen Schatten auf, so dass die Schatten nicht gezeichnet werden müssen im frame selbst. Dies ist eine Lösung, um ein ähnliches Ergebnis, das ist nicht, was ich möchte, aber. Ich will zeichnen Sie einen Rand außerhalb des Rahmens. Diese Art von Lösungen in der Regel andere Probleme verursachen.

  • this.getContentPane().setBorder(b);, aber besser ist es setzen JPanel mit Borders
  • Is it possible to draw any border around the frame itself, no around the root pane of the frame? - Nr. Welches problem versuchen Sie zu lösen?
  • Ich möchte hinzufügen eines Schattens zu meiner schmucklos JFrame. Ich habe derzeit einen Rahmen schafft, dass die Schatten wie Sie sehen können auf dem Bild in meiner Frage. Das problem ist, mit diesen Grenzen, die es gezeichnet wird in der Komponente der Grenze eingestellt wurde. Auf diesem Bild zum Beispiel, ist die Grenze gezogen, die auf der Innenseite der Grenzen des Rahmens. Gibt es eine Möglichkeit, ziehen diese Schatten-Grenze auf die Außenseite des Rahmens? Hinweis: ich habe aktualisiert die Frage, um einfach alles ein wenig klarer.
  • mögliche Duplikate von Undekorierter JFrame Schatten
InformationsquelleAutor Tim Visée | 2013-11-23
Schreibe einen Kommentar