2013-04-27 99 views
0

我用這個代碼:勾勒字體:的Java:調整邊框的寬度

public class MyText extends JPanel { 
String text1 = null; 
public MyText (String text) { 
text1 = text; 
} 

public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    setBackground(Color.white); 
    int w = getSize().width; 
    int h = getSize().height; 
    Graphics2D g2d = (Graphics2D) g; 
    FontRenderContext fontRendContext = g2d.getFontRenderContext(); 
    Font font = new Font("Verdana", 1, 72); 
    String st = new String(text1); 
    TextLayout text = new TextLayout(st, font, fontRendContext); 

    Shape shape = text.getOutline(null); 
    Rectangle rect = shape.getBounds(); 

    AffineTransform affineTransform = new AffineTransform(); 
    affineTransform = g2d.getTransform(); 
    affineTransform.translate(w/2 - (rect.width/2), h/2 
      + (rect.height/2)); 
    g2d.transform(affineTransform); 
    g2d.setColor(Color.black); 
    g2d.draw(shape); 
    g2d.setClip(shape); 
} 

的問題是我不知道如何來調整輪廓的厚度。 我試圖在第一個字符串上顯示另一個更大的字符串,但結果很糟糕(像素錯誤...)。

你有什麼想法嗎?

在此先感謝。

回答

1

可以使用setStroke考慮看看。例如

g2d.setStroke(new BasicStroke(4));