满意答案
lbbbq
2017.04.05
采纳率:57% 等级:13
已帮助:5276人
用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(); } } 运行结果
00分享举报