import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.WindowEvent; import java.awt.event.WindowAdapter; import java.awt.BorderLayout; import java.util.Observer; import javax.swing.JFrame; import javax.swing.JComponent; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Color; import java.awt.Rectangle; import java.awt.Font; import java.awt.Component; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.geom.Ellipse2D; import java.awt.font.TextLayout; public class DrawComponent { private static Board view; // The view of the sketch private static JFrame window; // The application window public static void main(String[] args) { window = new JFrame("Draw a Component"); // Create the app window window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Default is exit the application Toolkit theKit = window.getToolkit(); // Get the window toolkit Dimension wndSize = theKit.getScreenSize(); // Get screen size // Set the position to screen center & size to half screen size window.setBounds(wndSize.width/4, wndSize.height/4, // Position wndSize.width/2, wndSize.height/2); // Size view = new Board(); // Create the view window.getContentPane().add(view, BorderLayout.CENTER); window.setVisible(true); } static class Board extends JComponent{ public Board() { } public void paint(Graphics g) { Graphics2D g2D = (Graphics2D)g; // Get a 2D device context g2D.setPaint(Color.GREEN); g2D.setFont(new Font("Arial", Font.PLAIN, 18)); g2D.draw(new Line2D.Float(240.0f, 120.0f, 80.0f, 200.0f)); g2D.draw(new Rectangle2D.Double(50,50,140,100)); g2D.draw(new Ellipse2D.Double(220.0,100.0,40.0,40.0)); g2D.drawString("Thanksgiving",70,100); } private Graphics2D g2D = null; // Temporary graphics context } }