2008-10-14 13 views
0

J'ai un simple composant graphique écrit en Java. La classe dessine une horloge analogique dans un fichier java.awt.canvas.
Cette toile est alors contenue dans un JFrame - Ce que je veux faire est de donner à la toile un effet 3D "élevé" - presque comme ajouter une ombre portée à une photo. Existe-t-il un moyen simple de faire cela?Comment faire apparaître un canevas Java Canvas à partir de son conteneur

Répondre

2

Si vous utilisez un JFrame, vous avez deux options:

  1. Ajoutez votre propre composant à un JPanel d'abord, puis l'ajouter à la JFrame.

  2. Au lieu d'hériter de java.awt.Canvas, vous pouvez hériter de JComponent. Ensuite, vous devrez faire tout votre peinture dans la méthode paintComponent() au lieu de simplement paint() (vous pouvez simplement renommer votre méthode de peinture actuelle).

Dans les deux cas, vous pouvez maintenant définir une frontière avec la setBorder() Méthode (sur le JPanel ou votre composant), vous pouvez obtenir de BorderFactory.

Voir aussi: How to Use Borders

0

Si vous utilisiez un élément Swing, vous utiliseriez la méthode createRaisedBevelBorder() de BorderFactory et définiriez la bordure du canevas à la bordure résultante. Canvas est un composant AWT, vous devez donc l'inclure dans un composant Swing auquel vous pouvez définir la bordure.