Originariamente inviato da redcloud
Salve, ho bisogno di inserire in una cella di una JTable un bordo multicolore. MatteBorder è buono come stile però non mi da la possibilità di scegliere il colore sui 4 lati. Consigli?
Se non ti vanno bene i bordi che puoi creare con la classe BorderFactory, puoi sempre fartene uno tuo personale. Tieni infatti presente che "Border" è una interfaccia.
Se vuoi un bordo in cui personalizzare il colore di ognuno dei 4 bordi, puoi usare questa semplice classe che ho appena scritto:
codice:
import java.awt.*;
import javax.swing.border.Border;
public class FourBorders implements Border
{
private Color topColor;
private Color bottomColor;
private Color leftColor;
private Color rightColor;
public FourBorders (Color topColor, Color bottomColor, Color leftColor, Color rightColor)
{
this.topColor = topColor;
this.bottomColor = bottomColor;
this.leftColor = leftColor;
this.rightColor = rightColor;
}
public Insets getBorderInsets (Component c)
{
return new Insets (1, 1, 1, 1);
}
public boolean isBorderOpaque ()
{
return true;
}
public void paintBorder (Component c, Graphics g, int x, int y, int width, int height)
{
Color oldColor = g.getColor ();
g.translate (x, y);
g.setColor (topColor);
g.drawLine (0, 0, width-1, 0);
g.setColor (bottomColor);
g.drawLine (0, height-1, width-1, height-1);
g.setColor (leftColor);
g.drawLine (0, 0, 0, height-1);
g.setColor (rightColor);
g.drawLine (width-1, 0, width-1, height-1);
g.translate (-x, -y);
g.setColor (oldColor);
}
}