1  import java.awt.*;
  2  import java.applet.*;
  3  
  4  public class PopUpFrame extends Applet {
  5    Color backcolor = Color.magenta;
  6    NewFrame myframe;
  7    Canvas justcolor = new Canvas();
  8    Button getframe = new Button("Get Control Frame");
  9    
 10    
 11    public void init() {
 12      setLayout(new BorderLayout());
 13      myframe = new NewFrame(this);
 14      add("South",getframe);
 15      justcolor.setBackground(backcolor);
 16      add("Center",justcolor);
 17    }
 18    
 19    void changecolor(String newcolor) {
 20      if (newcolor.equals("blue")) justcolor.setBackground(Color.blue);
 21      else  if (newcolor.equals("cyan")) justcolor.setBackground(Color.cyan);
 22      else  if (newcolor.equals("back")) justcolor.setBackground(backcolor);
 23  
 24    }
 25    
 26    public boolean action(Event evt, Object arg) {
 27      if (evt.target instanceof Button)
 28        myframe.show();
 29      return true;
 30    }
 31  }
 32  
 33  class NewFrame extends Frame {
 34    Button closewindow = new Button("Quit");
 35    Button bluebutton = new Button("Change to Blue");
 36    Button cyanbutton = new Button("Change to Cyan");
 37    PopUpFrame outerparent;
 38    
 39    NewFrame(PopUpFrame parent) { 
 40      outerparent = parent;
 41      setTitle("Change Color");
 42      resize(300,300);
 43      setLayout(new GridLayout(3,1,2,2));
 44      add(bluebutton);
 45      add(cyanbutton);
 46      add(closewindow);
 47    }
 48    
 49    public boolean action (Event evt, Object arg) {
 50      if (evt.target instanceof Button) {
 51        if(evt.target == bluebutton) outerparent.changecolor("blue");
 52        if(evt.target == cyanbutton) outerparent.changecolor("cyan");
 53        if(evt.target == closewindow) 
 54  	     { hide(); outerparent.changecolor("back");}
 55      }
 56      return true;
 57    }
 58  }