Domanda

Ho un semplice componente GUI scritto in Java. La classe disegna un orologio analogico in java.awt.canvas.
Questa tela è quindi contenuta in un JFrame - Quello che voglio fare è dare alla tela un "rilievo" 3d. effetto - quasi come aggiungere un'ombra esterna a una foto. C'è un modo semplice per farlo?

È stato utile?

Soluzione

Se stai usando un JFrame, hai due opzioni:

  1. Aggiungi prima il tuo componente a JPanel e poi aggiungilo a JFrame.

  2. Invece di ereditare da java.awt.Canvas, è possibile ereditare da JComponent. Quindi dovresti fare tutto il tuo disegno nel metodo paintComponent () invece che solo paint () (puoi semplicemente rinominare il tuo metodo di pittura corrente).

In entrambi i casi ora puoi impostare un bordo con il metodo setBorder () (su JPanel o sul tuo componente) che puoi ottenere da BorderFactory.

Vedi anche: Come utilizzare i bordi

Altri suggerimenti

Se si utilizzava un elemento Swing, si utilizza il metodo createRaisedBevelBorder () di BorderFactory e si imposta il bordo dell'area di disegno sul bordo risultante. Canvas è un componente AWT, quindi dovrai avvolgerlo in un componente Swing sul quale puoi impostare il bordo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top