import java.awt.*;
import java.applet.*;
import javax.swing.*;
/**************************************************************
* En applikation som visar upp några grundläggande javatekniker
* för grafikhantering.
*
* @author Peter Mozelius
* @version 1.01
* Rapportera hittade fel till:
*mozelius@dsv.su.se
***************************************************************/
public class Lektion3c extends JFrame{
private JPanel panel;
private TextYta ty;
private Toolkit tk;
private Image bild;
public Lektion3c(){
setBackground(new Color(204, 0, 0));
this.setSize(350, 200);
Toolkit toolkit = Toolkit.getDefaultToolkit();
bild = toolkit.getImage("bild.jpg");
ty = new TextYta(bild);
add(ty,"Center");
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Lektion3c();
}
}//Lektion3c
/**************************************************************
* Specialisering av en JPanel där methoden paintComponent()
* ritar ut strängen text centrerad över den bild som ges som
* argument till klassens konstruktor
*
* @author Peter Mozelius
* @version 1.01
* Rapportera hittade fel till:
*mozelius@dsv.su.se
***************************************************************/
class TextYta extends JPanel{
private Image bild;
private String text;
private Font minFont;
private FontMetrics fm;
private Dimension dim;
private int x, y;
public TextYta(Image bild){
super();
this.setSize(350, 200);
this.bild = bild;
minFont = new Font("TimesRoman", java.awt.Font.BOLD, 52);
text = new String("Hejsan!!");
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(bild, 0, 0, this);
g.setColor(new Color(70, 70, 70));
g.setFont(minFont);
fm = g.getFontMetrics(minFont);
dim = getSize();
int sWidth = fm.stringWidth(text);
x = (dim.width/2) - (sWidth/2);
y = 145;
g.drawString(text,x, y);
}//paintComponent
}//TextYta