//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