/**Copyright (c) Louis, D., Müller, P.: "Java. Der umfassende Programmierkurs" * O`Reilly Verlag, Köln, 2014 * FraktalDemo.java - Fraktalberechnung, S. 801 */ import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class FraktalFenster extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private JPanel contentPane; private JPanel canvas; private BorderLayout borderLayout = new BorderLayout(); private FraktalThread fraktal = null; // Konstruktor public FraktalFenster() { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout); setSize(new Dimension(400, 400)); setResizable(false); setTitle("Fraktal-Demo-Thread"); JPanel tmp = new JPanel(); JButton start = new JButton("Start"); JButton stop = new JButton("Stop"); start.addActionListener(this); stop.addActionListener(this); tmp.add(start); tmp.add(stop); contentPane.add(tmp, BorderLayout.SOUTH); canvas = new JPanel(); canvas.setSize(400, 300); canvas.setBackground(Color.BLACK); contentPane.add(canvas, BorderLayout.CENTER); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if(cmd.equals("Start") == true && (fraktal == null)) { fraktal = new FraktalThread(canvas); fraktal.start(); } if(cmd.equals("Stop") == true && (fraktal != null)) { fraktal.stoppen(); fraktal = null; } } }