Hier als Referenzlösung die Klasse Hexenhaus:
import java.awt.*; import java.awt.event.*; import java.applet.*;
public class Hexenhaus extends Applet implements ActionListener { Label lbTitel = new Label("Zeichnen eines Hexenhauses"); Label lbCopyright = new Label("© 10/2000 by Ralph-Erich Hildebrandt - Konrad-Adenauer-Gymnasium Langenfeld");
Font ftTitel = new Font("Arial",Font.BOLD,16); Font ftCopyright = new Font("Arial",Font.PLAIN,11);
Panel pnTitel = new Panel(); Panel pnMenü = new Panel(); Panel pnCopyright = new Panel(); Panel pnWork = new Panel(); Panel pnZeichnen = new Panel(); Panel pnDelete = new Panel();
hhCanvas cvZeichnung;
Button btZeichnen = new Button("Zeichnen"); Button btDelete = new Button("Löschen");
public void init() { resize(640,480); setLayout(new BorderLayout()); //Titelzeile generieren add(pnTitel, BorderLayout.NORTH); pnTitel.setBackground(Color.blue); pnTitel.setForeground(Color.white); pnTitel.setFont(ftTitel); pnTitel.add(lbTitel); //Menübereich generieren add(pnMenü, BorderLayout.WEST); pnMenü.setBackground(Color.yellow); pnMenü.setLayout(new GridLayout(10,1)); pnMenü.add(pnZeichnen); pnZeichnen.add(btZeichnen); pnMenü.add(pnDelete); pnDelete.add(btDelete); btZeichnen.addActionListener(this); btDelete.addActionListener(this); //Copyrightzeile generieren add(pnCopyright, BorderLayout.SOUTH); pnCopyright.setBackground(Color.black); pnCopyright.setForeground(Color.white); pnCopyright.setFont(ftCopyright); pnCopyright.add(lbCopyright); //Arbeitsbereich generieren add(pnWork, BorderLayout.CENTER); cvZeichnung = new hhCanvas(640-pnMenü.getSize().width,480-pnTitel.getSize().height-pnCopyright.getSize().height); pnWork.add(cvZeichnung); cvZeichnung.setBackground(Color.white); cvZeichnung.init();
}
public void actionPerformed(ActionEvent event) { Object cmd = event.getSource(); if (cmd == btZeichnen) { cvZeichnung.Zeichnen(); } if (cmd == btDelete) { cvZeichnung.Löschen(); } } }