/*
 * Gary Cornell and Cay S. Horstmann, Core Java (Book/CD-ROM)
 * Published By SunSoft Press/Prentice-Hall
 * Copyright (C) 1996 Sun Microsystems Inc.
 * All Rights Reserved. ISBN 0-13-565755-5
 *
 * Permission to use, copy, modify, and distribute this 
 * software and its documentation for NON-COMMERCIAL purposes
 * and without fee is hereby granted provided that this 
 * copyright notice appears in all copies. 
 * 
 * THE AUTHORS AND PUBLISHER MAKE NO REPRESENTATIONS OR 
 * WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER 
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHORS
 * AND PUBLISHER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED 
 * BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING 
 * THIS SOFTWARE OR ITS DERIVATIVES.
 */
 
/**
 * @version 1.00 07 Feb 1996 
 * @author Cay Horstmann
 */

import java.awt.*;
import java.applet.*;

public class CheckboxTest extends Applet
{  public CheckboxTest()
   {  setLayout(new BorderLayout());     // Def. des Applet-Layouts
      
      Panel p = new Panel();             // Def. des Panel-Layouts
      p.setLayout(new FlowLayout());
      p.add(bold = new Checkbox("Bold"));    
      p.add(italic = new Checkbox("Italic"));    
      add("South", p);
      
      fox = new FoxCanvas(size());
      add("Center", fox);
   }
   
   public boolean handleEvent(Event evt)
   {  if (evt.id == Event.WINDOW_DESTROY) System.exit(0);
      return super.handleEvent(evt);
   }
 
   public boolean action(Event evt, Object arg) // Event-Behandlung
   {  if (evt.target.equals(bold) 
         || evt.target.equals(italic)) 
      {  int m = (bold.getState() ? Font.BOLD : 0) 
         + (italic.getState() ?
            Font.ITALIC : 0);
         fox.setFont(m);
      }
      else return super.action(evt, arg);
      return true;
   }
      
   private FoxCanvas fox;
   private Checkbox bold;
   private Checkbox italic;        
}



class FoxCanvas extends Canvas          // Canvas-Klasse
{   
     Dimension prefSize;
     
     public FoxCanvas(Dimension prefSize) 
     { 
       this.prefSize = prefSize;
       setFont(Font.PLAIN);
     }  

     public Dimension preferredSize()   // gewünschte Größe
      {
       return prefSize;
      }
     public Dimension minimumSize()     // minimum Größe
      {
       return prefSize;
      }
   

   public void setFont(int m)                        // Setzen der Font-Art
   {  setFont(new Font("Helvetica", m, 18));
      repaint();
   }
   public void paint(Graphics g)                     // Zeichnen der Schrift
   {  g.drawString
    ("So könnte der Text dann aussehen.", 10, 50);
   }
}
