Explore BrainMass
Share

Explore BrainMass

    Using the Java GUI

    This content was COPIED from BrainMass.com - View the original, and get the already-completed solution here!

    Write a program that draws a circle with radius 100 and center (200, 200). Ask the user to specify the x- and y-coordinates of a point. Draw the point as a small circle. If the point lies inside the circle, color the small circle green. Otherwise, color it red. In your exercise, declare a class Circle and a method boolean isInside(Point2D.Double p).

    Here is a sample program output:

    Use the following class as your main class:
    import java.awt.geom.Point2D;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;

    /**
    This program views a circle and a pocint.
    */
    public class CircleViewerSnap
    {
    public static void main(String[] args)
    {
    JFrame frame = new JFrame();

    final int FRAME_WIDTH = 400;
    final int FRAME_HEIGHT = 400;

    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
    frame.setTitle("CircleViewer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Point2D.Double point = new Point2D.Double(150, 150);

    CircleComponent component = new CircleComponent(point);
    frame.add(component);

    frame.setVisible(true);
    }
    }

    Complete the following classes in your solution:
    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.geom.Point2D;
    import java.awt.geom.Ellipse2D;

    /**
    This class implements a circle and a boolean function to
    test if a user-given point is inside this circle.
    */
    public class Circle
    {
    private double xCenter;
    private double yCenter;
    private double radius;
    private Color color;

    /**
    Constructs a circle.
    @param x the x-coordinate of the center
    @param y the y-coordinate of the center
    @param r the radius
    @param aColor the color
    */
    public Circle(double x, double y, double r, Color aColor)
    {
    xCenter = x;
    yCenter = y;
    radius = r;
    color = aColor;
    }

    /**
    Draws a circle and a point.
    @param g2 the graphics content
    */
    public void draw(Graphics2D g2)
    {
    g2.setColor(color);
    Ellipse2D.Double circle
    = new Ellipse2D.Double(xCenter - radius, yCenter - radius,
    2 * radius, 2 * radius);
    g2.draw(circle);
    }

    /**
    Determine if point is inside or outside the circle
    @param p the point to test if it is inside the circle
    @return true if the point is inside the circle
    */
    public boolean isInside(Point2D.Double p)
    {
    . . .
    }
    }

    --------------------------------------------------------------------------------

    import javax.swing.JComponent;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.geom.Point2D;
    import java.awt.geom.Ellipse2D;
    import javax.swing.JOptionPane;

    /**
    Draws a circle and a point. The point is colored green if it falls
    inside the circle, red otherwise.
    */
    public class CircleComponent extends JComponent
    {
    private Circle circle;
    private Circle smallCircle;

    public CircleComponent(Point2D.Double point)
    {
    circle = new Circle(200, 200, 100, Color.BLACK);
    final double SMALL_RADIUS = 3;
    Color color;
    if(. . .)
    color = Color.GREEN;
    else
    color = Color.RED;
    smallCircle = new Circle(point.getX(), point.getY(), SMALL_RADIUS, color);
    }

    public void paintComponent(Graphics g)
    {
    Graphics2D g2 = (Graphics2D) g;
    circle.draw(g2);
    smallCircle.draw(g2);
    }
    }

    Use the following class in your solution:
    import java.awt.geom.Point2D;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;

    /**
    This program views a circle and a point.
    */
    public class CircleViewer
    {
    public static void main(String[] args)
    {
    JFrame frame = new JFrame();

    final int FRAME_WIDTH = 400;
    final int FRAME_HEIGHT = 400;

    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
    frame.setTitle("CircleViewer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    String input = JOptionPane.showInputDialog("x:");
    double x = Double.parseDouble(input);

    input = JOptionPane.showInputDialog("y:");
    double y = Double.parseDouble(input);

    Point2D.Double point = new Point2D.Double(x, y);

    CircleComponent component = new CircleComponent(point);
    frame.add(component);

    frame.setVisible(true);
    }
    }

    I HAVE COME UP WITH THE FOLLOWING CODE BUT CAN'T SEEM TO GET THE POINTER TO WORK. PLEASE HELP.

    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.geom.Point2D;
    import java.awt.geom.Ellipse2D;

    /**
    This class implements a circle and a boolean function to
    test if a user-given point is inside this circle.
    */
    public class Circle
    {
    private double xCenter;
    private double yCenter;
    private double radius;
    private Color color;

    /**
    Constructs a circle.
    @param x the x-coordinate of the center
    @param y the y-coordinate of the center
    @param r the radius
    @param aColor the color
    */
    public Circle(double x, double y, double r, Color aColor)
    {
    xCenter = x;
    yCenter = y;
    radius = r;
    color = aColor;
    }

    /**
    Draws a circle and a point.
    @param g2 the graphics content
    */
    public void draw(Graphics2D g2)
    {
    g2.setColor(color);
    Ellipse2D.Double circle
    = new Ellipse2D.Double(xCenter - radius, yCenter - radius,
    2 * radius, 2 * radius);
    g2.draw(circle);
    }

    /**
    Determine if point is inside or outside the circle
    @param p the point to test if it is inside the circle
    @return true if the point is inside the circle
    */

    public boolean isInside(Point2D.Double p)
    {
    double distance;

    distance = Math.sqrt(Math.pow(xCenter - p.x,2)+(Math.pow(yCenter - p.y,2)));

    if(distance < radius)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    }

    ------------------------------------------
    import javax.swing.JComponent;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.geom.Point2D;
    import java.awt.geom.Ellipse2D;
    import javax.swing.JOptionPane;

    /**
    Draws a circle and a point. The point is colored green if it falls
    inside the circle, red otherwise.
    */
    public class CircleComponent extends JComponent
    {
    private Circle circle;
    private Circle smallCircle;

    public CircleComponent(Point2D.Double point)
    {
    circle = new Circle(200, 200, 100, Color.BLACK);
    final double SMALL_RADIUS = 3;
    Color color;
    if (circle.isInside()== true)
    color = Color.GREEN;
    else
    color = Color.RED;
    smallCircle = new Circle(point.getX(), point.getY(), SMALL_RADIUS, color);
    }

    public void paintComponent(Graphics g)
    {
    Graphics2D g2 = (Graphics2D) g;
    circle.draw(g2);
    smallCircle.draw(g2);
    }
    }

    ---------------------------------

    import java.awt.geom.Point2D;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;

    /**
    This program views a circle and a point.
    */
    public class CircleViewer
    {
    public static void main(String[] args)
    {
    JFrame frame = new JFrame();

    final int FRAME_WIDTH = 400;
    final int FRAME_HEIGHT = 400;

    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
    frame.setTitle("CircleViewer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    String input = JOptionPane.showInputDialog("x:");
    double x = Double.parseDouble(input);

    input = JOptionPane.showInputDialog("y:");
    double y = Double.parseDouble(input);

    Point2D.Double point = new Point2D.Double(x, y);

    CircleComponent component = new CircleComponent(point);
    frame.add(component);

    frame.setVisible(true);
    }
    }

    -------------------------------------

    import java.awt.geom.Point2D;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    /**
    This program views a circle and a pocint.
    */
    public class CircleViewerSnap
    {
    public static void main(String[] args)
    {
    JFrame frame = new JFrame();
    final int FRAME_WIDTH = 400;
    final int FRAME_HEIGHT = 400;
    frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
    frame.setTitle("CircleViewer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Point2D.Double point = new Point2D.Double(150, 150);

    CircleComponent component = new CircleComponent(point);
    frame.add(component);
    frame.setVisible(true);
    }
    }

    © BrainMass Inc. brainmass.com October 10, 2019, 7:16 am ad1c9bdddf
    https://brainmass.com/computer-science/java/using-java-gui-574610

    Solution Summary

    This solution involves using a Java GUI to write a program that will decide if if a point is inside a circle

    $2.19