我正在尝试在设置为横向的报告的左上角打印旋转数字“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);
任何想法都会受到赞赏。 谢谢 埃利奥特
答案 0 :(得分:0)
您不需要AffineTransform
,rotate
方法就是一个特殊情况。我也不知道为什么你打电话给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();
}
}