您当前的位置: 首页 > 

Graphics进行局部旋转的办法

柳鲲鹏 发布时间:2021-02-02 14:22:05 ,浏览量:0

  方法很简单,关键就是参数的设置。具体代码如下:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.geom.AffineTransform;
import sun.java2d.SunGraphics2D;

@SuppressWarnings("serial")
public class RotateFontFrame extends JFrame
{
	private final static String TAISHAN = "泰山Office";
	private final static char[] TAISHANC = TAISHAN.toCharArray();
	
	private final static int   startX   = 200;
	private final static int   startY   = 200;

    AffineTransform transform90 = AffineTransform.getRotateInstance(Math.PI / 2, 0, 0);    
    AffineTransform transform0  = AffineTransform.getRotateInstance( 0);

	public RotateFontFrame()
	{
		super();
	    this.getContentPane().setBackground(Color.WHITE);
	}

	@Override
    public void paint(Graphics g)
    {
		super.paint(g);

		SunGraphics2D sg2d = (SunGraphics2D)g;
		sg2d.setColor(Color.RED);

		//旋转90度。这个语句的参数是关键。
		transform90.setToRotation(Math.PI / 2, startX, startY);
		sg2d.setTransform(transform90);
		sg2d.fillRect(startX, startY, 100,  20);
		sg2d.drawChars(TAISHANC, 0, TAISHANC.length, startX, startY);
		
		//设置0度,取消旋转。
		sg2d.setTransform(transform0);
		sg2d.fillRect(startX, startY, 100,  20);
		sg2d.drawChars(TAISHANC, 0, TAISHANC.length, startX, startY);

    }

    public static void main(String[] args)
    {
    	RotateFontFrame frame = new RotateFontFrame();
        frame.setSize(1000, 600);
        frame.setVisible(true);
    }

}

 

关注
打赏
1688896170
查看更多评论

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4641博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0497s