Boa tarde.
Estou um pequeno problema.
Criei um render para o header da Jtable, para que eu consegui-se girar o label do header, deixando a Jtable igual a uma matrix.
Até então tudo correto, mas quando redimensiono a tela as colunas começam a diminuir de tamanho, diminuindo o tamanho do JLabel que está dentro do render.
Que as colunas diminuam de tamanho é normal, mas o label começar a ser cortado não.
Vejam o código do Render referente ao Header:
private class HeaderRender
extends
JPanel
implements TableCellRenderer
{
private JLabel label = new JLabel()
{
/**
* void
*
* @param g Graphics
* @return @Override
* @ignored paintComponent
*/
@Override
protected void paintComponent( Graphics g )
{
Graphics2D g2d = (Graphics2D) g;
setSize( getParent().getSize() );
g2d.rotate( Math.toRadians( 270 ) );
g2d.translate( -getHeight() + 5, (getParent().getWidth() / 2) - (getHeight() / 2) );
super.paintComponent( g );
}
};
/**
* HeaderRender
*
*/
public HeaderRender()
{
setPreferredSize( new Dimension( 150, 150 ) );
setBorder( BorderFactory.createMatteBorder( 1, 1, 1, 1, Color.white ) );
setLhttp://img15.imageshack.us/img15/1756/normalti.pngayout( new GridBagLayout() );
label.setOpaque( true );
label.setBackground( Color.blue );
add( label,
new GridBagConstraints( 0, 0, 1, 1, 10.0, 10.0,
GridBagConstraints.CENTER,
GridBagConstraints.BOTH,
new Insets( 0, 0, 0, 0 ), 0, 0 ) );
}
/**
*
* @param table
* @param value
* @param isSelected
* @param hasFocus
* @param row
* @param column
* @return
*/
@Override
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
{
label.setText( value.toString() );
return this;
}
}
Tela normal:
Tela redimensionada:
Percebam que o cabeçalho está cortando o label…
Setei o Background do label de azul para fical mais visivel o que está acontecendo.
Att.