Java 以横向模式旋转文本
我试图在设置为横向的报表的左上角打印一个旋转数字“999”。字符应该放在1/2英寸和1英寸以下的顶部,但没有打印到目前为止。这是我的密码:Java 以横向模式旋转文本,java,rotation,graphics2d,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(),
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);
任何想法都将不胜感激。
谢谢
Elliot您不需要
仿射变换
,旋转
方法是它的特例。我也不知道你为什么要调用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();
}
}
您需要为所绘制的组件调用
repaint()
。是吗?是的,它在别处叫。报告的其余部分打印得很好。Thanks@Elliot如果这解决了你的问题,请考虑接受答案,或者如果有帮助的话,投票赞成。