Canvas Example
/* Example illustrating the use of canvases. This applet has two canvases (of two different kinds) The basic fuinctionality is implemented here for illustration purposes. Experiment with this...to learn more! */ import java.awt.*; import java.applet.Applet; import java.awt.event.*; public class CanvasExample extends Applet implements ActionListener { // GUI Widgets Button goButton; leftCanvas L; rightCanvas R; public void init() { setLayout(new BorderLayout()); goButton = new Button("Do it again!"); Panel bPanel = new Panel(); bPanel.add(goButton); add("South", bPanel); goButton.addActionListener(this); // add the two canvases Panel centerPanel = new Panel(); centerPanel.setLayout(new GridLayout(1,2)); L = new leftCanvas(); R = new rightCanvas(); centerPanel.add(L); centerPanel.add(R); add("Center", centerPanel); } // init public void actionPerformed(ActionEvent e) { if (e.getSource() == goButton) { repaint(); // repaint this applet L.repaint(); // also repaint the canvases R.repaint(); // repaint canvases } } // actionPerformed } // CanvasExample public class leftCanvas extends Canvas { // Every left canvas has a random colored oval in it // every time it is repainted, it is generated and painted int h, w; // the height and width of this canvas public void paint(Graphics win) { int ovalDia; int r, g, b; int x, y; // set the height and width of this canvas // this depends on where it is added, so we'll use // getSize to get its dimensions h = getSize().height; w = getSize().width; win.drawRect(0,0, w-1, h-1); // Draw border // draw a random colored oval ovalDia = (int) (Math.random()*(w/4)); x = (int) (Math.random()*w); y = (int) (Math.random()*h); r = (int) (Math.random()*256); g = (int) (Math.random()*256); b = (int) (Math.random()*256); win.setColor(new Color(r, g, b)); win.fillOval(x, y, ovalDia, ovalDia); } // paint } // leftCanvas public class rightCanvas extends Canvas { // Every left canvas has a random colored box in it // every time it is repainted, it is generated and painted int h, w; // the height and width of this canvas public void paint(Graphics win) { int boxSize; int r, g, b; int x, y; // set the height and width of this canvas // this depends on where it is added, so we'll use // getSize to get its dimensions h = getSize().height; w = getSize().width; win.drawRect(0,0, w-1, h-1); // Draw border // draw a random colored box boxSize = (int) (Math.random()*(w/4)); x = (int) (Math.random()*w); y = (int) (Math.random()*h); r = (int) (Math.random()*256); g = (int) (Math.random()*256); b = (int) (Math.random()*256); win.setColor(new Color(r, g, b)); win.fillRect(x, y, boxSize, boxSize); } // paint } // leftCanvas