Calling a graphing method

Assuming that i have the following code and it works to make just a basic graph show up without any graphing calculations yet....how do I call the graph from the MAIN METHOD to make it show up?

import java.util.Scanner;
import java.text.DecimalFormat;

public class Poly
{
     public static void main (String[] args)
          {
double c4,c3,c2,c1,c0,x,interval,xvalue;
int ptnumber,counter;
String result;

DecimalFormat fmt = new DecimalFormat ("0.##");

Scanner scan = new Scanner (System.in);

System.out.print ("Enter the coefficient of x^4(0.0 if none:");
c4 = scan.nextDouble();

System.out.print ("Enter the coefficient of x^3(0.0 if none:");
c3 = scan.nextDouble();

System.out.print ("Enter the coefficient of x^2(0.0 if none:");
c2 = scan.nextDouble();

System.out.print ("Enter the coefficient of x^1(0.0 if none:");
c1 = scan.nextDouble();

System.out.print ("Enter the constant:");
c0 = scan.nextDouble();

System.out.print ("Enter the starting value of x:");
x = scan.nextDouble();

System.out.print ("Enter the number of points to be graphed(Integer):");
ptnumber = scan.nextInt();

System.out.print ("Enter the interval between points:");
interval = scan.nextDouble();


Polynomial pn = new Polynomial(c4, c3, c2, c1, c0);

System.out.println("f(x)="+pn);

System.out.println("x     | f(x)");
System.out.println("----------");
counter = 0;
while (counter < ptnumber)
{

System.out.println(x          +"     | "+fmt.format(pn.evaluate(x)));

x = (x + interval);
counter++;
}

     }
}


POLY CLASS

import javax.swing.JPanel;
import java.awt.*;
import java.text.DecimalFormat;


import java.text.DecimalFormat;
public class Polynomial
{
   double coeff4, coeff3, coeff2, coeff1, constant;
     String sign4,sign3,sign2,sign1,sign0;
   public Polynomial(double c4, double c3, double c2, double c1, double c0)
     {
          coeff4 = c4;
          coeff3 = c3;
          coeff2 = c2;
          coeff1 = c1;
          constant = c0;
     
     }
     
     public double evaluate(double x)
     {
               
          double xsq = x*x;
         return (coeff4*xsq*xsq + coeff3*xsq*x + coeff2*xsq + coeff1*x + constant);
     
     }
     
     public String toString()

  {
        String result = "";

           if (coeff4 != 0)
        {
               result += coeff4+"x^4";
           }
          if (coeff3 != 0)
        {
            if (coeff3 > 0)
                result += "+";
             
               result += coeff3+"x^3";
           }
          if (coeff2 != 0)
        {
            if (coeff2 > 0)
                result += "+";
             
                result += coeff2+"x^2";
           }
           if (coeff1 != 0)
        {
            if (coeff1 > 0)
                result += "+";
             
               result += coeff1+"x";
           }
       if(constant!=0)
     {
      if(constant>0)
          result+="+";

         result += constant;
      }

          return result;
           
  }

     
  public void draw(Graphics page, int xPixels, int yPixels)
{
    final int NUM = 11;
    final double INTERVAL = 0.5;
    final double XSTART = 0.0;

    final int XMARGIN = 70;
    final int XUSABLEPIXELS = xPixels - 2*XMARGIN;
    final int XINTERVALPIXELS = XUSABLEPIXELS/(NUM - 1);
    final int YMARGIN =40;
    final int YUSABLEPIXELS = yPixels - 2*YMARGIN;
     
       // Label the graph
    page.drawString("Graph of f(x) = " + toString(), XMARGIN + 20, YMARGIN);

    // Draw the x axis and put in hash marks
    page.drawLine(XMARGIN, yPixels - YMARGIN, xPixels - XMARGIN, yPixels - YMARGIN);
    for ( int i = 0; i < NUM; i++ )
        page.drawLine(XMARGIN + i * XINTERVALPIXELS, yPixels - YMARGIN, XMARGIN + i * XINTERVALPIXELS, yPixels - YMARGIN + 5);
           
      DecimalFormat twoPlaces = new DecimalFormat("0.00");

    // Label the x axis
    for (int i = 0; i < NUM; i++)
    {
        page.drawString( twoPlaces.format(XSTART + i * INTERVAL), 3 * XMARGIN / 4 + i * XINTERVALPIXELS, yPixels - YMARGIN/2);
    }

    // Draw the y axis
    page.drawLine(XMARGIN, YMARGIN, XMARGIN, yPixels - YMARGIN);

    // Label the y axis and put in hash marks
    final double YMIN = 0.0;
    final double YINTERVAL = 100.0;
    final int YINTERVALPIXELS = YUSABLEPIXELS / 10;

    for (int i = 0; i < NUM; i++)
    {
        page.drawString(twoPlaces.format(YMIN + i * YINTERVAL), XMARGIN / 4, yPixels - i * YINTERVALPIXELS - YMARGIN);
        page.drawLine(XMARGIN, yPixels - YMARGIN - i * YINTERVALPIXELS, XMARGIN - 5, yPixels - YMARGIN - i * YINTERVALPIXELS);
    }

   
   }
}


           

lusius188Asked:
Who is Participating?
 
ADSLMarkCommented:
You have to create a class which extends from JFrame. You create an instance of this class in your main method. Next you add an extension of a JPanel with the graph drawing code to the frame and voila.

sth like:

import javax.swing.*;
class MyGraphExample extends JFrame
{
    public MyGraphExample()
    {
        this.setTitle("My graph");
        this.setSize(800,600);
        this.setLayout(new BorderLayout());
        this.add(new MyGraphPanel(), BorderLayout.CENTER);
    }
    public static void main(String[] args)
    {
        MyGraphExample mge = new MyGraphExample();
        mge.setVisible(true);
    }
}

import javax.swing.*;
class MyGraphPanel extends JPanel
{
    public MyGraphPanel()
    {
    }

    public void paintComponent(Graphics g)
    {
        ... perform drawing here ...
    }
}

Good luck.
Mark
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.