import java.awt.Container; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; public class HelloTest { public static void main (String args[]) { HelloFrame frame = new HelloFrame(); frame.show(); } } class HelloFrame extends JFrame { public HelloFrame() { final int HORIZONTAL_SIZE = 300; final int VERTICAL_SIZE = 300; final String title = "HelloTest"; setSize(HORIZONTAL_SIZE, VERTICAL_SIZE); setTitle(title); WindowCloser listener = new WindowCloser(); addWindowListener(listener); panel = new HelloPanel(); panel.setMessageSize(DEFAULT_SIZE); panel.setMessageText("Hello, World!"); Container contentPane = getContentPane(); contentPane.add(panel, "Center"); } private HelloPanel panel; private static final int DEFAULT_SIZE = 12; private class WindowCloser extends WindowAdapter { public void windowClosing(WindowEvent event) { System.exit(0); } } } class HelloPanel extends JPanel { public HelloPanel() { messageX = 100; messageY = 100; } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; Font messageFont = new Font("Serif", Font.PLAIN, messageSize); g2.setFont(messageFont); g2.drawString(messageText, messageX, messageY); } public void setMessageText(String text) { messageText = text; repaint(); } public void setMessageSize(int size) { messageSize = size; repaint(); } private int messageX; private int messageY; private String messageText; private int messageSize; }