java/swing:将文本字符串转换为形状 [英] java/swing: converting a text string to a Shape
本文介绍了java/swing:将文本字符串转换为形状的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将一些任意文本转换为形状 (java.awt.Shape
) 然后描边/填充 Shape 以绘制它.我该怎么做?
I want to convert some arbitrary text to a Shape (java.awt.Shape
) and then stroke/fill the Shape to draw it. How can I do this?
推荐答案
嗯,我不知道这个问题的答案,但是在使用 Eclipse 内容帮助进行了一些调整和探索之后,我发现这似乎正是您所需要的:
Hm I did not know the answer to this but after a bit tweaking and poking around in with Eclipse content assist i found this which seems to be what you need:
我更改了代码以更改字符串的显示方式,这就是您问什么的原因:) 试试看.它将字符串呈现为红色和虚线轮廓
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.font.GlyphVector;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test extends JPanel{
private Shape s;
public Test() {
Font f = getFont().deriveFont(Font.BOLD, 70);
GlyphVector v = f.createGlyphVector(getFontMetrics(f).getFontRenderContext(), "Hello");
s = v.getOutline();
setPreferredSize(new Dimension(300,300));
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.translate(100, 150);
g2.rotate(0.4);
g2.setPaint(Color.red);
g2.fill(s);
g2.setPaint(Color.black);
g2.setStroke(new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1, new float[]{1,0.4f,1.5f}, 0));
g2.draw(s);
}
public static void main(String[] args) {
JFrame f = new JFrame("Test");
Component c = new Test();
f.getContentPane().add(c);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
另请注意,您可以通过调用从字符串中获取单个字符:
Also note that you can get the individual characters from the string by calling:
getGlyphOutline(glyphIndex)
这篇关于java/swing:将文本字符串转换为形状的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文