forked from Labore/PR2-L
58 lines
1.5 KiB
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;
|
|
}
|
|
}
|
|
}
|