Pregunta

Tengo un componente GUI simple escrito en Java. La clase dibuja un reloj analógico en java.awt.canvas.
Este lienzo está contenido en un JFrame: lo que quiero hacer es darle al lienzo un 3d "elevado". efecto: casi como agregar una sombra paralela a una foto. ¿Hay una manera simple de hacer esto?

¿Fue útil?

Solución

Si está utilizando un JFrame, entonces tiene dos opciones:

  1. Agregue su propio componente a un JPanel primero y luego agregue esto al JFrame.

  2. En lugar de heredar de java.awt.Canvas, puede heredar de JComponent. Entonces tendría que hacer toda su pintura en el método paintComponent () en lugar de solo paint () (puede cambiar el nombre de su método de pintura actual).

En ambos casos, ahora puede establecer un borde con el Método setBorder () (en el JPanel o su componente) que puede obtener de BorderFactory.

Consulte también: Cómo usar los bordes

Otros consejos

Si estuviera usando un elemento Swing, usaría el método createRaisedBevelBorder () de BorderFactory y establecería el borde del lienzo en el borde resultante. Canvas es un componente AWT, por lo que deberá envolverlo en un componente Swing en el que pueda establecer el borde.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top