import java.awt.*; import javax.swing.*; import java.awt.event.*; public class KochSnowflake extends JApplet implements ActionListener { private final int APPLET_WIDTH = 400; private final int APPLET_HEIGHT = 440; private final int MIN = 1; private final int MAX = 9; private JButton increase, decrease; private JLabel titleLabel, orderLabel; private KochPanel drawing; private JPanel appletPanel, tools; public void init() { // create tools panel tools = new JPanel(); tools.setLayout(new BoxLayout(tools,BoxLayout.X_AXIS)); tools.setBackground(Color.yellow); tools.setOpaque(true); //create title panel titleLabel = new JLabel("Koch Snowflake"); titleLabel.setForeground(Color.black); //create buttons increase = new JButton(new ImageIcon("up.png")); increase.setPressedIcon(new ImageIcon("uppressed.png")); increase.setMargin(new Insets(0,0,0,0)); increase.addActionListener(this); decrease = new JButton(new ImageIcon("down.png")); decrease.setPressedIcon(new ImageIcon("downpressed.png")); decrease.setMargin(new Insets(0,0,0,0)); decrease.addActionListener(this); //create order label orderLabel = new JLabel("Order: 1"); orderLabel.setBackground(Color.black); // now add everything to the panel. tools.add(titleLabel); tools.add(Box.createHorizontalStrut(20)); tools.add(decrease); tools.add(increase); tools.add(Box.createHorizontalStrut(20)); tools.add(orderLabel); // create a drawing area drawing = new KochPanel(1); // now an outer container appletPanel = new JPanel(); appletPanel.add(tools); appletPanel.add(drawing); getContentPane().add(appletPanel); setSize(APPLET_WIDTH, APPLET_HEIGHT); } public void actionPerformed(ActionEvent event) { int order = drawing.getOrder(); if (event.getSource() == increase) { order++; } else { order--; } if (order >= MIN && order <= MAX) { orderLabel.setText("Order: " + order); drawing.setOrder(order); repaint(); } } }