This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
pjava-jfastreader/MyCanvas.java
2004-12-08 10:14:32 +00:00

40 lines
1.1 KiB
Java

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
class MyCanvas extends Canvas {
Color bgColor = new Color(0,0,128);
Color fgColor = new Color(255,255,0);
String word = "";
int maxFontSize = 100;
public void paint(Graphics g) {
g.setColor(bgColor);
g.fillRect(0,0,getSize().width-1,getSize().height-2);
g.setColor(Color.black);
g.drawRect(0,0,getSize().width-1,getSize().height-2);
if (word.length()>0) {
g.setColor(fgColor);
// do auto-downsizing of font
int fs = maxFontSize;
Font f;
FontMetrics fm;
do {
f = new Font("Dialog", Font.BOLD, fs);
fm = g.getFontMetrics(f);
fs -= 2;
} while ((fm.stringWidth(word)>getSize().width-2) || (fm.getHeight()>getSize().height-2));
g.setFont(f);
g.drawString(word, getSize().width/2-fm.stringWidth(word)/2, getSize().height/2-fm.getHeight()/2+fm.getAscent());
}
}
public void setWord(String txt) {
word = txt;
repaint();
}
}