In Java I have a class Triangle that inherits from class Sha

In Java:

I have a class Triangle that inherits from class Shape, within class Shape it has a method draw() which simply paints the background a color, in class Triangle it draw a triangle, I\'m having problems getting this to work, this is what I have so far:


public class Shape {
   //instance variables
   private static double x;
   private static double y;
   private Color color;
  
   public void draw(Graphics g){
       JPanel panel = new javax.swing.JPanel();
       JFrame app = new JFrame();
       app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       app.add(panel);
       app.setSize(400,400);
       panel.setBackground(Color.CYAN);
       app.setVisible(true);
   }

}


public class Triangle extends Shape{

    public void draw(Graphics g){
       Point p[] = new Point[3];
       p[0] = new Point((int)x1, (int)y1);
p[1] = new Point((int)(x1+sideB), 0);
p[2] = new Point((int) (Math.cos(angleA) * sideC), (int) (Math.sin(angleA) * angleC));
int[] xCoord = {p[0].x,p[1].x,p[2].x};
int[] yCoord = {p[0].y,p[1].y,p[2].y};
       g.drawPolygon(xCoord,yCoord,3);
   }

I have a class draw that extends JPanel to override paint component but I\'m not sure how to get it to work with these :(

Obviously the code above doesn\'t have the bulk of the classes, the other methods and constructors, if anyone needs them for the solution let me know and I will post them..

Solution

Define the class Shape to extend the awt.Frame class and override the paint(Grpahics g) method. Refer below:

package chegg.draw;

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class Shape extends Frame {

   public Shape() {

       super(\"Shape\");

       setSize(400, 400);

       addWindowListener(new WindowAdapter() {

           public void windowClosing(WindowEvent windowEvent) {

               System.exit(0);

           }

       });

   }

@Override

   public void paint(Graphics g) {

       super.paint(g);

       setBackground(Color.BLUE);

   }

   public static void main(String[] args) {

       Shape shape = new Triangle();

       shape.setVisible(true);

   }

}

Now, define the class Triangle to extend from the Shape class. Override the paint(Grpahics g) method and implement the triangle drawing logic. Refer below:

package chegg.draw;

import java.awt.Graphics;

import java.awt.Point;

public class Triangle extends Shape {

@Override

   public void paint(Graphics g) {

       super.paint(g);

       Point p[] = new Point[3];

       p[0] = new Point((int) 100, 100);

       p[1] = new Point((int) 300, 100);

       p[2] = new Point((int) 200, 300);

       int[] xCoord = { p[0].x, p[1].x, p[2].x };

       int[] yCoord = { p[0].y, p[1].y, p[2].y };

       g.drawPolygon(xCoord, yCoord, 3);

   }

}

In Java: I have a class Triangle that inherits from class Shape, within class Shape it has a method draw() which simply paints the background a color, in class
In Java: I have a class Triangle that inherits from class Shape, within class Shape it has a method draw() which simply paints the background a color, in class
In Java: I have a class Triangle that inherits from class Shape, within class Shape it has a method draw() which simply paints the background a color, in class

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site