Lecture 14: Recursion. Frames
We'll start with recursion.
When we are done we will move to understanding how paint
works.
We'll discuss an example similar to this:
Notice:class Frame { protected String myGC = "The Graphics Context from class Frame"; protected int width, height; protected boolean visible; protected void resize(int w, int h) { setSize(w, h); refresh(); } protected void refresh() { paint(myGC); } protected void setVisible(boolean tF) { visible = tF; paint(myGC); } protected void setSize(int w, int h) { width = w; height = h; } public void paint(String gc) { System.out.println("Frame: I use\n " + gc + " \nto draw my images."); } } public class Window extends Frame { public void paint(String graphicsContext) { System.out.println("Window: I use\n " + graphicsContext + " \nto draw my images."); } public static void main(String[] args) { Frame f = new Window(); // you have f.setSize(100, 200); // seen this f.setVisible(true); // many times... user(f); // you never ever see this // but you know it happens } private static void user(Frame f) { f.resize(200, 400); // minimal interaction by the user simulated here } }
Frame
user
too
paint
when doing graphics
paint
gives you access to a graphics context
protected
is like private
, but
allowing inheritance of the variable or method.