Java tutorial
// 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); } }