我希望能够将任何字符或字符串转换为形状或区域,以便我可以以我喜欢的任何大小、样式、效果等绘制该字符。
更具体地说,我将使用视差来绘制它,以便仅在某个角度清楚地定义它(这就是为什么我不能使用 html 或任何类似性质的东西)。我已经设置了视差,我只需要形状。
所以简而言之,public Shape convert(char c){...}
.
或者,如果您能想到另一种实现此目的的方法,请告诉我。
只是给你一个粗略的想法:
我希望能够将任何字符或字符串转换为形状或区域,以便我可以以我喜欢的任何大小、样式、效果等绘制该字符。
更具体地说,我将使用视差来绘制它,以便仅在某个角度清楚地定义它(这就是为什么我不能使用 html 或任何类似性质的东西)。我已经设置了视差,我只需要形状。
所以简而言之,public Shape convert(char c){...}
.
或者,如果您能想到另一种实现此目的的方法,请告诉我。
只是给你一个粗略的想法:
根据先前的答案,您似乎可以按如下方式进行管理(假设此方法是在 的子类上定义的JPanel
):
public Shape convert(char c) {
Font f = getFont();
// Optionally change font characteristics here
// f = f.deriveFont(Font.BOLD, 70);
FontRenderContext frc = getFontMetrics(f).getFontRenderContext();
GlyphVector v = f.createGlyphVector(frc, new char[] { c });
return v.getOutline();
}
声明采用 String 参数的方法可能更容易,因为您可以将 String 作为第二个参数传递给createGlyphVector()
- 另外,如果您需要执行多个操作,这可能比单独转换每个字符更有效。