Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

import javax.swing.*; import java.awt.event.*; import java.awt.*; public class B

ID: 3906342 • Letter: I

Question

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

public class BookReview extends JFrame implements ActionListener {

      private JLabel titleLabel;

      private JTextField titleTxtFd;

      private JComboBox typeCmb;

      private ButtonGroup ratingGP;

      private JButton processBnt;

      private JButton endBnt;

      private JButton clearBnt;

      private JTextArea entriesTxtAr;

      private JRadioButton excellentRdBnt;

      private JRadioButton veryGoodRdBnt;

      private JRadioButton fairRdBnt;

      private JRadioButton poorRdBnt;

      private String ratingString;

      private final String EXCELLENT = "Excellent";

      private final String VERYGOOD = "Very Good";

      private final String FAIR = "Fair";

      private final String POOR = "Poor";

      String lineSeparator = System.getProperty("line.separator");

      public BookReview(String name) {

            super(name);

            JPanel infoPanel = new JPanel();

            titleLabel = new JLabel("Title: ");

            infoPanel.add(titleLabel);

            titleTxtFd = new JTextField(20);

            infoPanel.add(titleTxtFd);

            typeCmb = new JComboBox();

            typeCmb.addItem("Novel");

            typeCmb.addItem("Short Stories");

            typeCmb.addItem("Essays");

            typeCmb.addItem("Poems");

            typeCmb.addItem("Biography");

            //Add two new entries

            typeCmb.addItem("Recipes");

            typeCmb.addItem("Travelogue");

            infoPanel.add(typeCmb);

            getContentPane().add(infoPanel, BorderLayout.NORTH);

            JPanel ratingPanel = new JPanel();

            ratingGP = new ButtonGroup();

            excellentRdBnt = new JRadioButton("Excellent");

            veryGoodRdBnt = new JRadioButton("Very Good");

            fairRdBnt = new JRadioButton("Fair");

            poorRdBnt = new JRadioButton("Poor");

            ratingGP.add(excellentRdBnt);

            ratingGP.add(veryGoodRdBnt);

            ratingGP.add(fairRdBnt);

            ratingGP.add(poorRdBnt);

            ratingPanel.add(excellentRdBnt);

            ratingPanel.add(veryGoodRdBnt);

            ratingPanel.add(fairRdBnt);

            ratingPanel.add(poorRdBnt);

            getContentPane().add(ratingPanel, BorderLayout.WEST);

            JPanel actionPanel = new JPanel(new GridLayout(1,0));

            processBnt = new JButton("process");

            endBnt = new JButton("end");

            clearBnt = new JButton("clear");

            actionPanel.add(processBnt);

            actionPanel.add(clearBnt);

            actionPanel.add(endBnt);

            getContentPane().add(actionPanel, BorderLayout.EAST);

            entriesTxtAr = new JTextArea(20, 20);

            getContentPane().add(entriesTxtAr, BorderLayout.SOUTH);

            pack();

            setVisible(true);

            processBnt.addActionListener(this);

            clearBnt.addActionListener(this);

            //hand write the code for registering the

            //other 6 components

            //in the space below. The 6 components are: endBnt,

            //excellentRdBnt, veryGoodRdBnt, fairRdBnt, poorRdBnt,

            //and typeCmb.

            //adding action listener for your six component by nirankar

            endBnt.addActionListener(this);

            excellentRdBnt.addActionListener(this);

            veryGoodRdBnt.addActionListener(this);

            fairRdBnt.addActionListener(this);

            poorRdBnt.addActionListener(this);

            typeCmb.addActionListener(this);

            addWindowListener(new WindowAdapter() {

                  public void windowClosing(WindowEvent event) {

                        System.exit(0);

                  }

            });

      }

      public void actionPerformed(ActionEvent event) {

            Object srcObj = event.getSource();

            if (srcObj == clearBnt) {

                  titleTxtFd.setText("");

            } else if (srcObj == endBnt) {

                  System.exit(0);

            } else if (srcObj == processBnt) {

                  entriesTxtAr.append(lineSeparator +

                              titleTxtFd.getText() + " " +

(String) typeCmb.getSelectedItem()

+ " " + ratingString);

            } else if (srcObj == excellentRdBnt) {

                  ratingString = EXCELLENT;

            } else if (srcObj == veryGoodRdBnt) {

                  ratingString = VERYGOOD;

            } else if (srcObj == fairRdBnt) {

                  ratingString = FAIR;

            } else if (srcObj == poorRdBnt) {

                  ratingString = POOR;

            }

      }

}

Inspect the code. After you understood the layout structure that is implied by the code in List 1, 2 fill out the name and the layout manager of each panel in the dotted rectangle boxes.

Explanation / Answer

panel Name: Info panel

layout manager : Flow Layout

Because a panel has flow layout manager by default without any arguements

panel Name: Rating panel

layout manager : Flow Layout

panel Name: Action panel

layout manager : Grid Layout

panel Name: Info panel

layout manager : Flow Layout