# Schrift umranden



## LoN_Nemesis (3. Nov 2006)

Hallo,

ich male auf einen Graphics2D Objekt mit .drawString(). Nun würde ich gerne meine Schrift mit einer anderen Farbe als die Schrift selbst umranden. Geht das irgendwie? Eventuell mit Stroke, aber ich verstehe die Klasse irgendwie nicht so ganz und sie scheint sich auch nur auf geometrische Figuren auszuwirken und nicht auf drawString, oder sehe ich das falsch?

Wäre nett wenn mir jemand helfen könnte.


----------



## André Uhres (3. Nov 2006)

LoN_Nemesis hat gesagt.:
			
		

> ..Nun würde ich gerne meine Schrift mit einer anderen Farbe als die Schrift selbst umranden. Geht das irgendwie?..




```
package paint;
/*
 * TextrandDemo.java
 */
import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import javax.swing.*;
public class TextrandDemo extends JFrame {
    public TextrandDemo() {
        super("Textrand Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        add(new MyPanel());
    }
    public static void main(final String args[]) {new TextrandDemo().setVisible(true);}
}
class MyPanel extends JPanel{
    final private Shape shape;
    public MyPanel(){
        TextLayout text = new TextLayout("Hallo", Font.decode("Arial-BOLD-100"), 
           new FontRenderContext(null, false, false));
        AffineTransform textAt = new AffineTransform();
        textAt.translate(0, (float)text.getBounds().getHeight());
        shape = text.getOutline(textAt);
    }
    public void paintComponent(final Graphics g){
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        // Stroke setzen:
        g2.setStroke(new BasicStroke(3.0f));
        // Shape positionieren:
        AffineTransform pos = new AffineTransform();
        pos.translate(50,100);
        g2.transform(pos);
        //Füllen und umranden:
        g2.setColor(Color.blue);
        g2.fill(shape);
        g2.setColor(Color.darkGray);
        g2.draw(shape);
    }
}
```


----------



## LoN_Nemesis (3. Nov 2006)

Vielen Dank, genau das was ich gesucht habe


----------

