Frage

Ich habe eine einfache GUI-Komponente in Java geschrieben. Die Klasse zieht eine analoge Uhr in einer java.awt.canvas.
Diese Leinwand wird dann in einem JFrame enthalten - Was ich tun möchte, ist der Leinwand einen 3d „angehoben“ Effekt geben - fast wie ein Schlagschatten auf ein Foto hinzufügen. Gibt es eine einfache Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Wenn Sie eine JFrame verwenden, dann haben Sie zwei Möglichkeiten:

  1. Fügen Sie Ihre eigene Komponente zu einem JPanel und dann dies den JFrame hinzuzufügen.

  2. Statt von java.awt.Canvas vererben, können Sie von JComponent erben. Dann würden Sie tun müssen, um alle Ihre Malerei in der paintcomponent () Methode, anstatt nur malen () (Sie können Sie die aktuelle paint-Methode umbenennen).

In beiden Fällen können Sie jetzt eine gemeinsame Grenze mit der setBorder () Methode gesetzt (auf der JPanel oder Ihre Komponente) können Sie von BorderFactory erhalten.

Siehe auch: Wie Borders verwenden

Andere Tipps

Wenn Sie ein Swing-Element verwendet hat, werden Sie den createRaisedBevelBorder () -Methode des BorderFactory verwenden und die Leinwand Grenze zur resultierenden Grenze. Canvas ist eine AWT-Komponente, so dass Sie es in einer Swing-Komponente wickeln müssen, an denen Sie die Grenze festlegen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top