Graphics: getFontMetrics() : Graphics « java.awt « Java by API






Graphics: getFontMetrics()

 
/*
 * Output:
 *  
 */

import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainClass extends JPanel {

  public void paint(Graphics g) {
    int fontSize = 20;

    g.setFont(new Font("TimesRoman", Font.PLAIN, fontSize));
    
    
    FontMetrics fm = g.getFontMetrics();

    String s = "www.java2s.com";
    
    int stringWidth = fm.stringWidth(s);

    int w = 200;
    int h = 200;
    
    int x = (w - stringWidth) / 2;
    int baseline = fm.getMaxAscent() +
                       (h - (fm.getAscent() + fm.getMaxDecent()))/2;
    int ascent  = fm.getMaxAscent();
    int descent = fm.getMaxDecent();
    int fontHeight = fm.getMaxAscent() + fm.getMaxDecent();

    g.setColor(Color.white);
    g.fillRect(x, baseline-ascent , stringWidth, fontHeight);

    g.setColor(Color.gray);
    g.drawLine(x, baseline, x+stringWidth, baseline);

    g.setColor(Color.red);
    g.drawLine(x, baseline+descent, x+stringWidth, baseline+descent);

    g.setColor(Color.blue);
    g.drawLine(x, baseline-ascent,
               x+stringWidth, baseline-ascent);
    g.setColor(Color.black);
    g.drawString(s, x, baseline);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new MainClass());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(200,200);
    frame.setVisible(true);
  }
}
           
         
  








Related examples in the same category

1.Graphics: clipRect(int x, int y, int width, int height)
2.Graphics: draw3DRect(int x, int y, int width, int height, boolean raised)
3.Graphics: drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
4.Graphics: drawBytes(byte[] data,int offset,int length,int x,int y)
5.Graphics: drawChars(char[] data, int offset, int length, int x, int y)
6.Graphics: drawImage(Image img, int x, int y, ImageObserver ob)
7.Graphics: drawLine(int x1, int y1, int x2, int y2)
8.Graphics: drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)
9.Graphics: drawOval(int x, int y, int width, int height)
10.Graphics: drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
11.Graphics: drawPolyline(int[] xPoints,int[] yPoints,int nPoints)
12.Graphics: drawRect(int x, int y, int width, int height)
13.Graphics: drawString(String str, int x, int y)
14.Graphics: fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
15.Graphics: fill3DRect(int x, int y, int width, int height, boolean raised)
16.Graphics: fillOval(int x, int y, int width, int height)
17.Graphics: fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
18.Graphics: fillRect(int x, int y, int width, int height)
19.Graphics: fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)
20.Graphics: setClip(int x, int y, int width, int height)
21.Graphics: setColor(Color c)
22.Graphics: setPaintMode()
23.Graphics: setXORMode(Color cl)