addressdisplay.java

来自「java编程开发技巧与实例的编译测试通过的所有例程」· Java 代码 · 共 48 行

JAVA
48
字号
import java.awt.*;

public class AddressDisplay extends Canvas
{
	private static Font FONT_LARGE	=	new Font("Serif", Font.BOLD, 16);
	private static Font FONT_PLAIN	=	new Font("Serif", Font.PLAIN, 12);
	private static FontMetrics METRICS_LARGE, METRICS_PLAIN;
	private Address address = null;
	public AddressDisplay()
	{
		super();
		METRICS_LARGE	=	getFontMetrics(FONT_LARGE);
		METRICS_PLAIN	=	getFontMetrics(FONT_PLAIN);
	}
	public void setText(Address _address)
	{
		address = _address;
		setSize(computeSize());
	}
	private Dimension computeSize()
	{
		int max = METRICS_LARGE.stringWidth(address.toString());
		for (int i = 2; i < address.getLabels().length; i ++)
		{
			String text = address.getLabels()[i] + address.getAddress()[i];
			if (max < METRICS_PLAIN.stringWidth(text))
				max = METRICS_PLAIN.stringWidth(text);
		}
		return new Dimension(max + 20, address.getLabels().length * 20);
	}
	public void paint(Graphics g)
	{
		if (address != null)
		{
			g.setFont(FONT_LARGE);
			g.setColor(Color.blue);
			g.drawString(address.toString(), 5, 20);
			for (int i = 2; i < address.getLabels().length; i ++)
			{
				String text = address.getLabels()[i] + address.getAddress()[i];
				g.setFont(FONT_PLAIN);
				g.setColor(Color.black);
				g.drawString(text, 10, 20 * i);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?