在JTable中垂直接头?

问题描述 投票:11回答:3

有没有一种方法来旋转90º一个JTable的列标题?

java swing jtable
3个回答
8
投票

3
投票

这是有点棘手。首先,你需要转换的JTable标头的JLabel。这就像

 ((JLabel)table.getTableHeader()

然后旋转的JLabel。它已经回答here on StackOverflow


0
投票

也许这会有所帮助,我没有,虽然测试它:

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);  
    }  
}  

这不是我自己的,从here

© www.soinside.com 2019 - 2024. All rights reserved.