forked from Labore/PR2-L
1
0
Fork 0
PR2-L/FraktalDemoThread/src/FraktalFenster.java

58 lines
1.5 KiB
Java

/**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;
}
}
}