Pergunta

Eu tenho um componente GUI simples escrito em Java. A classe desenha um relógio analógico em um java.awt.canvas.
Esta tela é então contido em um JFrame - O que eu quero fazer é dar a tela um 3d "levantada" efeito - quase como a adição de uma sombra a uma foto. Existe uma maneira simples de fazer isso?

Foi útil?

Solução

Se você estiver usando um JFrame, então você tem duas opções:

  1. Adicione sua própria componente a um JPanel em primeiro lugar e, em seguida, adicione ao JFrame.

  2. Em vez de herdar de java.awt.Canvas, você pode herdar de JComponent. Então você teria que fazer toda a sua pintura no paintComponent () método em vez de apenas pintar () (você pode apenas mudar o nome do método de pintura atual).

Em ambos os casos, você pode agora definir uma fronteira com o setBorder () Method (no JPanel ou seu componente), você pode começar a partir BorderFactory.

Veja também: Como Use Borders

Outras dicas

Se você estava usando um elemento Swing, você pode usar o método createRaisedBevelBorder () do BorderFactory e definir a fronteira da lona da fronteira resultante. Canvas é um componente AWT, então você precisa de envolvê-lo em um componente Swing para o qual você pode definir a fronteira.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top