以横向模式旋转文本

时间:2014-05-19 17:09:41

标签: java rotation graphics2d

我正在尝试在设置为横向的报告的左上角打印旋转数字“999”。字符应放置在距离顶部大约1/2英寸和1英寸的位置,但到目前为止还没有任何打印。这是我的代码:

haX = 30;
haY = 100;
AffineTransform at = g2d.getTransform();
g2d.translate(haX + haY, 0); 
g2d.rotate(-Math.PI/2);
Font rotatedFont = new Font(font.getFontName(), font.getStyle(), fs );
rotatedFont = rotatedFont.deriveFont(at);
g2d.setFont(rotatedFont);
g2d.drawString("999", haX, haY);
g2d.setTransform(at);  

任何想法都会受到赞赏。 谢谢 埃利奥特

1 个答案:

答案 0 :(得分:0)

您不需要AffineTransformrotate方法就是一个特殊情况。我也不知道为什么你打电话给translate,因为你已经知道你所在的位置。 以下是旋转文本的方法:

public class Draw extends JFrame {

    Draw() {

        setContentPane(new MyPanel());
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setSize(300,300);
        setVisible(true);
    }

    class MyPanel extends JPanel {

        @Override
        public void paintComponent(Graphics g) {

            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D)g;
            int haX = 30;
            int haY = 100;
            g2d.rotate(-Math.PI/2, haX, haY);
            g2d.drawString("999", haX, haY);
        }
    }

    public static void main(String[] args) {

        new Draw();
    }
}