📄 kochsnowflake.java
字号:
//********************************************************************
// KochSnowflake.java Author: Lewis/Loftus
//
// Demonstrates the use of recursion in graphics.
//********************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KochSnowflake extends JApplet implements ActionListener
{
private final int APPLET_WIDTH = 400;
private final int APPLET_HEIGHT = 440;
private final int MIN = 1, MAX = 9;
private JButton increase, decrease;
private JLabel titleLabel, orderLabel;
private KochPanel drawing;
private JPanel appletPanel, tools;
//-----------------------------------------------------------------
// Sets up the components for the applet.
//-----------------------------------------------------------------
public void init()
{
tools = new JPanel ();
tools.setLayout (new BoxLayout(tools, BoxLayout.X_AXIS));
tools.setPreferredSize (new Dimension (APPLET_WIDTH, 40));
tools.setBackground (Color.yellow);
tools.setOpaque (true);
titleLabel = new JLabel ("The Koch Snowflake");
titleLabel.setForeground (Color.black);
increase = new JButton (new ImageIcon ("increase.gif"));
increase.setPressedIcon (new ImageIcon ("increasePressed.gif"));
increase.setMargin (new Insets (0, 0, 0, 0));
increase.addActionListener (this);
decrease = new JButton (new ImageIcon ("decrease.gif"));
decrease.setPressedIcon (new ImageIcon ("decreasePressed.gif"));
decrease.setMargin (new Insets (0, 0, 0, 0));
decrease.addActionListener (this);
orderLabel = new JLabel ("Order: 1");
orderLabel.setForeground (Color.black);
tools.add (titleLabel);
tools.add (Box.createHorizontalStrut (40));
tools.add (decrease);
tools.add (increase);
tools.add (Box.createHorizontalStrut (20));
tools.add (orderLabel);
drawing = new KochPanel (1);
appletPanel = new JPanel();
appletPanel.add (tools);
appletPanel.add (drawing);
getContentPane().add (appletPanel);
setSize (APPLET_WIDTH, APPLET_HEIGHT);
}
//-----------------------------------------------------------------
// Determines which button was pushed, and sets the new order
// if it is in range.
//-----------------------------------------------------------------
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();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -