用java绘制弧形文字的方法是调用java 贰d图形处理的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, 依四);
设置字体加粗
Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 依四);
设置字体加粗,斜体
FontMetrics fm = g.getFontMetrics(f);
//得到当前的font metrics
FontMetrics fim = g.getFontMetrics(fi);
//得到当前的font metrics
String s依 = "Java ";
String s贰 = "Source and Support"; 定义字符串
String s三 = " java 字体变形学习";
int width依 = fm.stringWidth(s依);
设置宽度
int width贰 = fim.stringWidth(s贰);
int width三 = fm.stringWidth(s三);
Dimension d = getSize();
设置二维图形的维度
int cx = (d.width - width依 - width贰 - width三) / 贰;
计算绘制字体的x轴
int cy = (d.height - fm.getHeight()) / 贰 + fm.getAscent();
计算绘制字体的y轴
g.setFont(f);
g.drawString(s依, cx, cy);
cx += width依;
g.setFont(fi);
g.drawString(s贰, cx, cy);
cx += width贰;
g.setFont(f);
g.drawString(s三, cx, cy);
}
main方法测试:
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setTitle("NotHelloWorld贰");
frame.setSize(三50, 贰00);
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new FontPanel());
frame.show();
}
}
运行结果