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

comp sci intro course question code: https://www.dropbox.com/sh/oyyicwn4xgx3m26/

ID: 3679337 • Letter: C

Question

comp sci intro course question

code: https://www.dropbox.com/sh/oyyicwn4xgx3m26/AACeqjFTcBEP585x301Li-vta?dl=0

Implement the RadioButton class as a subclass of GUIelement. a.This class should have one extra instance variable of type GUIgroup which keeps track of which group of GUIelements this button is a part of. This is needed because radio buttons arc not independent, but function as a group. When one of them is sclcctcd, it automatically unselects the others in its group. b.Write a constructor which acccpts six parameters (xc, yc, radius, title, hilite, g) where xc and yc arc the coordinates of the centre of the button, radius is the radius of the button (radio buttons arc always circular), title is the label that should be shown to the right of the button, and g is the GUIgroup that this button is a part of. Use the superclass constructor appropriately. c.Write a draw() method which will override the superclass draw() method - no rectangle is wanted this time. Instead, it should draw a hollow circle (solid white with a thin black outline) with the proper ccntrc and radius. It should also draw its text (the title) just to the right of the button (leave a little space between the button and the title, and don't forget that there is a StdDraw. text Left method). If the button is highlighted, then fill in the button with a smaller solid black circlc inside the outer one. d.Write a void reset () method which will set highlighted to false and redraw the button. This method will be called whenever some other radio button in the same group as this one is selected. e.Write a handleClick(double x, double y) method which will use the superclass handleClick method to determine whether or not the mouse click was in this button. If it was, this method should apply the resetRadioButtons () method to the GUIgroup that this button is a part of. This will reset all radio buttons in this group (including this one). Then the highlighted flag for this button should be changed to true, the button should be rc-drawn to show its new status, and true should be returned (indicating "I handled it"). Otherwise false should be returned.

Explanation / Answer

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class SwingControlDemo {

   

   private JFrame mainFrame;

   private JLabel headerLabel;

   private JLabel statusLabel;

   private JPanel controlPanel;

   public SwingControlDemo(){

      prepareGUI();

   }

   public static void main(String[] args){

      SwingControlDemo swingControlDemo = new SwingControlDemo();     

      swingControlDemo.showRadioButtonDemo();

   }

   private void prepareGUI(){

      mainFrame = new JFrame("Java Swing Examples");

      mainFrame.setSize(400,400);

      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {

         public void windowClosing(WindowEvent windowEvent){

            System.exit(0);

         }       

      });   

      headerLabel = new JLabel("", JLabel.CENTER);       

      statusLabel = new JLabel("",JLabel.CENTER);   

      statusLabel.setSize(350,100);

      controlPanel = new JPanel();

      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);

      mainFrame.add(controlPanel);

      mainFrame.add(statusLabel);

      mainFrame.setVisible(true);

   }

   private void showRadioButtonDemo(){

      headerLabel.setText("Control in action: RadioButton");

      final JRadioButton radApple = new JRadioButton("Apple", true);

      final JRadioButton radMango = new JRadioButton("Mango");

      final JRadioButton radPeer = new JRadioButton("Peer");

      radApple.setMnemonic(KeyEvent.VK_C);

      radMango.setMnemonic(KeyEvent.VK_M);

      radPeer.setMnemonic(KeyEvent.VK_P);

      radApple.addItemListener(new ItemListener() {

         public void itemStateChanged(ItemEvent e) {        

            statusLabel.setText("Apple RadioButton: "

            + (e.getStateChange()==1?"checked":"unchecked"));

         }          

      });

      radMango.addItemListener(new ItemListener() {

         public void itemStateChanged(ItemEvent e) {            

            statusLabel.setText("Mango RadioButton: "

            + (e.getStateChange()==1?"checked":"unchecked"));

         }          

      });

      radPeer.addItemListener(new ItemListener() {

         public void itemStateChanged(ItemEvent e) {            

            statusLabel.setText("Peer RadioButton: "

            + (e.getStateChange()==1?"checked":"unchecked"));

         }          

      });

      //Group the radio buttons.

      ButtonGroup group = new ButtonGroup();

      group.add(radApple);

      group.add(radMango);

      group.add(radPeer);

    controlPanel.add(radApple);

      controlPanel.add(radMango);

      controlPanel.add(radPeer);      

      mainFrame.setVisible(true);

   }

}

NOTE- the above code is useful to create radibuttons in java and by using or modifying given query can be solved.