首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JTable中的垂直标题?

JTable中的垂直标题?
EN

Stack Overflow用户
提问于 2010-06-28 04:59:33
回答 3查看 9.4K关注 0票数 11

有没有办法将JTable的列标题旋转90°?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-28 06:07:23

看看Darryl的Vertical Table Header Cell Renderer吧。

票数 8
EN

Stack Overflow用户

发布于 2010-06-28 05:14:34

这有点棘手。首先,您需要将JTable标头转换为JLabels。就像是

代码语言:javascript
复制
 ((JLabel)table.getTableHeader()

然后rotate JLabels。它已经回答了here on StackOverflow

票数 3
EN

Stack Overflow用户

发布于 2010-06-28 05:11:30

也许这会有帮助,不过我还没有测试过:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3128883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档