Eu queria saber como eu posso setar por exemplo só as de cima de uma celula ? Eu vi que tem um metodo acho que é o insets… mais eun consegui fazer funcionar… se tiver algum exemplo simples e poder passar…
Eder_Peixoto
Olá!
Realmente a melhor maneira é extendendo a classe DefaultTableModel.
Para bordas personalizadas, quando as classes da API do Java não satisfazem o teu interesse, é só extender a classe abstrata AbstractBorder, onde será necessário implementar o método paintBorder.
Abaixo consta um exemplo para mostrar apenas a borda inferior:
packagepacotes.utilitarios.swing.border;importjava.awt.Component;importjava.awt.Graphics;importjavax.swing.border.AbstractBorder;/** * Constroi uma borda para uso em links. * @author Eder Peixoto * @version 1.01 - 20/04/2009. */publicclassLinkBorderextendsAbstractBorder{/** * Pinta uma borda apenas por baixo do componente, na mesma <code>Color</code> do foreground *do <code>component</code>. * @param c the component for which this border is being painted * @param g the paint graphics * @param x the x position of the painted border * @param y the y position of the painted border * @param width the width of the painted border * @param height the height of the painted border */@OverridepublicvoidpaintBorder(Componentc,Graphicsg,intx,inty,intwidth,intheight){g.setColor(c.getForeground());g.drawLine(0,height-1,width,height-1);//Border Bottom}//Fim do metodo.}//Fim da classe.
Note que é muito simples mudar a borda. A borda que você criar será utilizada na implementação do método getTableCellRendererComponent, na invocação do método setBorder.