//RandomPolygons.java
//BorderLayout with a JPanel in NORTH, JTextArea in EAST
//The JPanel is GridLayout 1,3
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Arrays;
public class RandomPolygons extends JApplet implements ActionListener {
private JLabel sidesLabel;
private JTextField sidesField;
private JTextArea pointsArea;
private JButton againButton;
private int sides;
private JPanel topPanel;
public void init() {
Container container = getContentPane();
container.setLayout( new BorderLayout() ); //not needed, is default
topPanel = new JPanel();
topPanel.setLayout (new GridLayout( 1, 3));
//sidesLabel = new JLabel( "
Number of sides
" );
sidesLabel = new JLabel( "Number of sides" );
topPanel.add( sidesLabel);
sidesField = new JTextField( 4 );
topPanel.add( sidesField);
sidesField.addActionListener( this );
againButton = new JButton( "Another one" );
topPanel.add( againButton );
againButton.addActionListener( this );
container.add( topPanel, BorderLayout.NORTH );
pointsArea = new JTextArea(8,7);
container.add( new JScrollPane(pointsArea), BorderLayout.EAST );
}
public void actionPerformed( ActionEvent event ) {
if ( event.getSource() == againButton )
repaint();
else if ( event.getSource() == sidesField ) {
sides = Integer.parseInt( sidesField.getText() );
repaint();
}
}
public void paint( Graphics g )
{
super.paint( g );
double radius;
int[][] points = new int[2][sides];
double[] angles = new double[sides];
int xcenter = getWidth() / 2;
int ycenter = getHeight() / 2;
double appletSize = Math.min(getWidth(), getHeight());
double angle; //radians
for (int i=0; i