//Given the length and width of a rectangle, this Java //program determines its area and perimeter. import javax.swing.*; import java.awt.*; import java.awt.event.*; public class RectangleProgram extends JFrame { JLabel lengthL, widthL, areaL, perimeterL; JTextField lengthTF, widthTF, areaTF, perimeterTF; JButton calculateB, exitB; CalculateButtonHandler calculateHandler; ExitButtonHandler exitHandler; private static final int WIDTH = 400; private static final int HEIGHT = 300; public RectangleProgram() { // Create four labels lengthL = new JLabel("Enter the length: ", SwingConstants.RIGHT); widthL = new JLabel("Enter the width: ", SwingConstants.RIGHT); areaL = new JLabel("Area: ",SwingConstants.RIGHT); perimeterL = new JLabel("Perimeter: ", SwingConstants.RIGHT); //Create four textfields lengthTF = new JTextField(10); widthTF = new JTextField(10); areaTF = new JTextField(10); perimeterTF = new JTextField(10); //create Calculate Button calculateB = new JButton("Calculate"); calculateHandler = new CalculateButtonHandler(); calculateB.addActionListener(calculateHandler); //Create Exit Button exitB = new JButton("Exit"); exitHandler = new ExitButtonHandler(); exitB.addActionListener(exitHandler); //Set the title of the window setTitle("Area and Perimeter of a Rectangle"); //Get the container Container pane = getContentPane(); //Set the layout pane.setLayout(new GridLayout(5,2)); //Place all items created pane.add(lengthL); pane.add(lengthTF); pane.add(widthL); pane.add(widthTF); pane.add(areaL); pane.add(areaTF); pane.add(perimeterL); pane.add(perimeterTF); pane.add(calculateB); pane.add(exitB); //set the size of the window and display it setSize(WIDTH,HEIGHT); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } private class CalculateButtonHandler implements ActionListener { public void actionPerformed(ActionEvent e) { double width, length, area, perimeter; length = Double.parseDouble(lengthTF.getText()); width = Double.parseDouble(widthTF.getText()); area = length * width; perimeter = 2 * (length + width); areaTF.setText("" + area); perimeterTF.setText("" + perimeter); } } private class ExitButtonHandler implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0); } } public static void main( String args[] ) { RectangleProgram rectObject = new RectangleProgram(); } }