怎样用java绘制弧形文字

 我来答
育知同创教育
2017-01-10 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

用java绘制弧形文字的方法是调用java 2d图形处理的api实现的。

完整代码如下:

// 引入需要的jar包

import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
//定义一个类
public class FontPanel extends JPanel {
//定义一个画板,入参是图形g
 public void paintComponent(Graphics g) {
   super.paintComponent(g);
   Font f = new Font("SansSerif", Font.BOLD, 14); 设置字体加粗
   Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);设置字体加粗,斜体
   FontMetrics fm = g.getFontMetrics(f); //得到当前的font metrics
   FontMetrics fim = g.getFontMetrics(fi);//得到当前的font metrics

   String s1 = "Java ";
   String s2 = "Source and Support"; 定义字符串
   String s3 = " java 字体变形学习";
   int width1 = fm.stringWidth(s1); 设置宽度
   int width2 = fim.stringWidth(s2);
   int width3 = fm.stringWidth(s3);

   Dimension d = getSize(); 设置二维图形的维度
   int cx = (d.width - width1 - width2 - width3) / 2; 计算绘制字体的x轴
   int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();计算绘制字体的y轴
   g.setFont(f);
   g.drawString(s1, cx, cy);
   cx += width1;
   g.setFont(fi);
   g.drawString(s2, cx, cy);
   cx += width2;
   g.setFont(f);
   g.drawString(s3, cx, cy);
 }

main方法测试:
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.setTitle("NotHelloWorld2");
   frame.setSize(350, 200);
   frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e) {
       System.exit(0);
     }
   });
   Container contentPane = frame.getContentPane();
   contentPane.add(new FontPanel());
   frame.show();
 }
}

运行结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式