Center.java Source code

Java tutorial

Introduction

Here is the source code for Center.java

Source

// This example is from the book _Java AWT Reference_ by John Zukowski.
// Written by John Zukowski.  Copyright (c) 1997 O'Reilly & Associates.
// You may study, use, modify, and distribute this example for any purpose.
// This example is provided WITHOUT WARRANTY either expressed or
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Insets;

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

public class Center extends JPanel {
    static String text[] = new String[] { "asdf", "asdfasdf" };
    private Dimension dim;

    public void addNotify() {
        super.addNotify();
        int maxWidth = 0;
        FontMetrics fm = getFontMetrics(getFont());
        for (int i = 0; i < text.length; i++) {
            maxWidth = Math.max(maxWidth, fm.stringWidth(text[i]));
        }
        Insets inset = getInsets();
        dim = new Dimension(maxWidth + inset.left + inset.right,
                text.length * fm.getHeight() + inset.top + inset.bottom);
        setSize(dim);
    }

    public void paint(Graphics g) {
        g.translate(100, 100);
        FontMetrics fm = g.getFontMetrics();
        for (int i = 0; i < text.length; i++) {
            int x, y;
            x = (getWidth() - fm.stringWidth(text[i])) / 2;
            y = (i + 1) * fm.getHeight() - 1;
            g.drawString(text[i], x, y);
        }

    }

    public static void main(String[] a) {
        JFrame f = new JFrame();
        f.add(new Center());
        f.setSize(300, 300);
        f.setVisible(true);
    }
}