Y at-il un moyen de faire pivoter 90º les en-têtes de colonne d'un JTable?En-têtes verticaux dans JTable?
10
A
Répondre
7
Consultez le Vertical Table Header Cell Renderer de Darryl.
0
Peut-être que cette aide, je ne l'ai pas testé si
class RotatedTableCellRenderer extends JLabel implements TableCellRenderer
{
protected int m_degreesRotation = -90;
public RotatedTableCellRenderer(int degrees)
{
m_degreesRotation = degrees;
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
try
{
this.setText(value.toString());
}
catch(NullPointerException ne)
{
this.setText("Nullvalue");
}
return this;
}
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
g2.setClip(0,0,500,500);
g2.setColor(new Color(60,179,113));
g2.setFont(new Font("Arial",Font.BOLD,12));
AffineTransform at = new AffineTransform();
at.setToTranslation(this.getWidth(), this.getHeight());
g2.transform(at);
double radianAngle = (((double)m_degreesRotation)/((double)180)) * Math.PI;
at.setToRotation(radianAngle);
g2.transform(at);
g2.drawString(this.getText(), 0.0f, 0.0f);
}
}
}
Ce n'est pas moi-même, pris de here
+0
bien c'est pour les cellules pas en-têtes. – Xorty
3
Ceci est peu délicat. Au début, vous devez lancer les en-têtes JTable dans JLabels. Il est comme
((JLabel)table.getTableHeader()
Ensuite faites pivoter JLabels. Il est déjà répondu here on StackOverflow
Un problème avec ceci est que cela ne respecte pas les thèmes os :( – Annan