/**************************************************************************** ** COPYRIGHT (C): 1997 Cay S. Horstmann. All Rights Reserved. ** PROJECT: Practical OO Development with C++ and Java ** FILE: ScalableText.java ** PURPOSE: shape class ** VERSION 1.0 ** PROGRAMMERS: Cay Horstmann (CSH) ** RELEASE DATE: 3-15-97 (CSH) ** UPDATE HISTORY: ****************************************************************************/ package practicaloo; import java.awt.Graphics; import java.awt.Font; import java.io.PrintStream; public class ScalableText extends Text { public ScalableText(Point p, String s, double size) { super(p, s); _size = size; } public void scale(Point center, double s) { super.scale(center, s); _size = _size * s; } public void plot(Graphics g) { Font f = g.getFont(); int s = f.getSize(); Font fnew = new Font(f.getName(), f.getStyle(), s * (int)_size); g.setFont(fnew); super.plot(g); g.setFont(f); } public double get_size() { return _size; } public void set_size(double k) { _size = k; } public void print(PrintStream p) { p.print(System.out); } public Rectangle extent(Graphics g) { Font f = g.getFont(); int s = f.getSize(); Font fnew = new Font(f.getName(), f.getStyle(), s * (int)_size); g.setFont(fnew); Rectangle r = super.extent(g); g.setFont(f); return r; } private double _size; }