Attualmente ho la classe DropShadowBorder
(che estende la classe javax.swing.border.Border
) dalla libreria SwingX
, quindi questa è un'istanza di un normale Border
. Vorrei disegnare questo bordo attorno al mio JFrame
non decorato. Attualmente sto usando il seguente metodo all'interno del mio JFrame
per impostare il confine:Java: come disegnare un bordo attorno a un JFrame non decorato?
DropShadowBorder b = new DropShadowBorder(Color.BLACK, 0, 10, 0.2f, 10, true, true, true, true);
this.getRootPane().setBorder(b);
Nota: sto usando il pannello principale del telaio per disegnare il confine, perché il telaio non supporta le frontiere si.
Il problema è che i confini sono disegnati all'interno del componente stesso, come si può vedere nella figura in basso, il bordo in ombra viene disegnato all'interno, contro i limiti del telaio stesso:
Nota: il bordo (ombreggiato) viene disegnato all'interno della cornice rispetto ai suoi limiti, anziché all'esterno della cornice.
Non importa quale tipo di bordo viene utilizzato, tutti sono disegnati all'interno dello stesso JFrame
.
La mia domanda è: È possibile disegnare qualsiasi bordo attorno al fotogramma, non solo all'interno contro i limiti del fotogramma?
Un modo che potrebbe essere utilizzato per risolvere questo problema, è quello di creare una diversa non decorato finestra in pieno schermo che è trasparente, la finestra normale viene messo in cima a questa. Questa finestra a tutto schermo viene utilizzata per disegnare l'ombra, quindi l'ombra non deve essere disegnata nel frame stesso. Questa è una soluzione per ottenere un risultato simile, questo è non quello che vorrei però. Voglio disegnare un bordo al di fuori della cornice. Questo tipo di soluzioni di solito causa altri problemi.
'this.getContentPane() setBorder (b);', ma migliore è lì messo 'JPanel' con' 'E 'Borders' – mKorbel
è possibile disegnare qualsiasi bordo attorno al frame stesso, no attorno al riquadro radice del frame? '- No. Che problema stai tentando di risolvere? – camickr
Vorrei aggiungere un'ombra al mio 'JFrame' non decorato. Al momento ho un bordo che crea l'ombra come puoi vedere nella foto nella mia domanda. Il problema è con questi bordi che è disegnato all'interno del componente su cui è stato impostato il bordo. Su quell'immagine, ad esempio, il bordo viene disegnato all'interno dei limiti della cornice. C'è un modo per disegnare questo bordo ombra all'esterno della cornice? Nota: ho aggiornato la domanda per rendere tutto un po 'più chiaro. –