Un pannello in Java dotato di bordi destro e sinistro con una sfumatura a gradiente di 10px.
Per un utilizzo corretto, occorre aggiungere un bordo "vuoto" di 10px affinchè il contenuto del pannello non si sovrapponga alla banda colorata:
Per un utilizzo corretto, occorre aggiungere un bordo "vuoto" di 10px affinchè il contenuto del pannello non si sovrapponga alla banda colorata:
pannelloConGradiente.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 10, 1, 10));
Per ottenere un bordo più o meno denso, basta parametrizzare lo spessore.
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
public class PanelWithBorder extends JPanel
{
protected void paintComponent( Graphics g )
{
if ( !isOpaque( ) )
{
super.paintComponent( g );
return;
}
Graphics2D g2d = (Graphics2D)g;
int w = getWidth( );
int h = getHeight( );
Color color1 = getBackground( );
Color color2 = color1.darker( );
GradientPaint gpSxBorder = new GradientPaint(0, 0, color2, 10, 0, color1 );
GradientPaint gpDxBorder = new GradientPaint(w-10, 0, color1, w, 0, color2 );
g2d.setPaint( gpSxBorder);
g2d.fillRect( 0, 0, 10, h );
g2d.setPaint( gpDxBorder );
g2d.fillRect( w-10, 0, w, h );
setOpaque( false );
super.paintComponent( g );
setOpaque( true );
}
}
Nessun commento:
Posta un commento