Re: Drawstring() and mirror printing.
On 2/1/14, 5:34 PM, mariuszpietrzak73@gmail.com wrote:
Please help me to [resolve] issue. I have to print mirror image of string. I [tried] to use AffineTransform and scale. but it didn't work well. Maybe have you any idea to do this?
As an alternative to Stefan Ram delightful example, you can alter the
graphics context's transform to invert through the desired axis. The
example below uses scale(1, -1) to create a vertical reflection:
private static class MirrorPanel extends JPanel {
private static final int SZ = 42;
private static final String s = "Hello";
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setFont(getFont().deriveFont(42f));
g2d.drawString(s, SZ, SZ);
g2d.drawLine(SZ, SZ,
SZ + g2d.getFontMetrics().stringWidth(s), SZ);
g2d.scale(1, -1);
g2d.drawString(s, SZ, -SZ);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(SZ * 5, SZ * 2);
}
}
See also this related example due to Daniele Futtorovic:
<http://groups.google.com/group/comp.lang.java.help/browse_frm/thread/2d6db5d6d6739b22>
--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>