We help IT Professionals succeed at work.

getContentPane().add(panel,BorderLayout.CENTER); in Java

duncanb7
duncanb7 asked
on
:Dear Expert,
I hav ran javac command  many times on the following code, there is still last error left.
The error is at last line in attahced code about not finding the symbol  of
getContentPane().add(panel,BorderLayout.CENTER); I already include
everything of java at the begining line of the code but still get the following
error.
Please help on this, and I suspect I use wrongly code about "public static void main(String[] args) { " at the last serveral lines in the code That may be bad  code when  I am using Applet to display the chart output result in  IE with HTML code  

Why Javac could not find out the symbol  of getCOntentPane() ? That is
supposed not too difficult ..Right ? Or Is the error related to JPanel();

And other question , html code I write at last line of this email is problem  
regardless of my code of  Java code of "simplearea.java"

Please kindly advise and help on it
Duncan




==============================================
javac Error:

D:\wkw\Summary\INTERN~1\CHART-~1\javademo>javac -classpath "ChartDirector_s.jar;." simplearea.java
simplearea.java:95: cannot find symbol
symbol  : method getContentPane()
location: class simplearea
       getContentPane().add(panel,BorderLayout.CENTER);
       ^
1 error
==========
I want use HTML code with Applet to display chart output result in IE as follows:

<HTML>
  <HEAD>
    <TITLE>A Simplearea (1.6)</TITLE>
  </HEAD>
  <BODY>
    <h1>A Simplearea (1.6)</h1>
    <hr>
    <applet code="simplearea.class" archive="ChartDirector_s.jar" width=170 height=150>
      alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason."
      Your browser is completely ignoring the &lt;APPLET&gt; tag!
</applet>
 
  </BODY>
</HTML>
==================================


/* Demo example of "simplearea.java" */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import ChartDirector.*;
import java.applet.*;

import java.io.*;

import java.util.*;


import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;


public class simplearea extends Applet implements DemoModule
{
    //Name of demo program
    public String toString() { return "Simple Area Chart"; }

    //Number of charts produced in this demo
    public int getNoOfCharts() { return 1; }

    //Main code for creating charts
    public void createChart(ChartViewer viewer, int index)
    {
        // The data for the area chart
        double[] data = {30, 28, 40, 55, 75, 68, 54, 60, 50, 62, 75, 65, 75, 89, 60,
            55, 53, 35, 50, 66, 56, 48, 52, 65, 62};

        // The labels for the area chart
        String[] labels = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
            "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
            "23", "24"};

        // Create a XYChart object of size 250 x 250 pixels
        XYChart c = new XYChart(250, 250);

        // Set the plotarea at (30, 20) and of size 200 x 200 pixels
        c.setPlotArea(30, 20, 200, 200);

        // Add an area chart layer using the given data
        c.addAreaLayer(data);

        // Set the labels on the x axis.
        c.xAxis().setLabels(labels);

        // Display 1 out of 3 labels on the x-axis.
        c.xAxis().setLabelStep(3);

        // Output the chart
        viewer.setImage(c.makeImage());

        //include tool tip for the chart
        viewer.setImageMap(c.getHTMLImageMap("clickable", "",
            "title='Hour {xLabel}: Traffic {value} GBytes'"));
    }

    //Allow this module to run as standalone program for easy testing
    public static void main(String[] args)
    {
        //Instantiate an instance of this demo module
        DemoModule demo = new simplearea();

        //Create and set up the main window
        JPanel panel = new JPanel();
       /* frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);} });
        frame.getContentPane().setBackground(Color.white);*/

        // Create the chart and put them in the content pane
        ChartViewer viewer = new ChartViewer();  
        demo.createChart(viewer, 0);
        panel.add(viewer);
       /* frame.getContentPane().add(viewer);*/

        // Display the window
       /* frame.pack();
        frame.setVisible(true);*/
       getContentPane().add(panel,BorderLayout.CENTER);


    }
}

Open in new window

Comment
Watch Question

Mick BarryJava Developer
Top Expert 2010

Commented:

you need to create a JFrame, you cannot display a JPanel by itself

Author

Commented:
At the beginning I am using these orginial code from the vendor  , but some one told that is not good code and ask me change to using Jpanel that
could run on Applet in IE with HTML code

public static void main(String[] args)
    {
        //Instantiate an instance of this demo module
        DemoModule demo = new simplearea();

        //Create and set up the main window
        JFrame frame = new JFrame(demo.toString());
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);} });
        frame.getContentPane().setBackground(Color.white);

        // Create the chart and put them in the content pane
        ChartViewer viewer = new ChartViewer();
        demo.createChart(viewer, 0);
        frame.getContentPane().add(viewer);

        // Display the window
        frame.pack();
        frame.setVisible(true);
    }
Java Developer
Top Expert 2010
Commented:
main is not used for an applet, you instead need to embed applet in a html page
http://java.sun.com/docs/books/tutorial/deployment/applet/

Author

Commented:
Dear Object,

You are right, I change back to JFrame, but how I delete the issue
main issue using public void int() {, RIght ?

THe program is passed now with using back the  orginal code , Using JFlame
instead of Jpanel . both command of Javac and Java is also passed

But it doesn't work at appletviewer  for my chart-demo.html as follows,
In other words, it doesn't work on HTML webpaga in IE either, RIght ?

Please help on it kindly
Duncan
================================
chart-demo.HTML code from mine
<HTML>
  <HEAD>
    <TITLE>A Simplearea (1.6)</TITLE>
  </HEAD>
  <BODY>
    <h1>A Simplearea (1.6)</h1>
    <hr>
    <applet code="simplearea.class" archive="ChartDirector_s.jar" width=170 height=150>
      alt="Your browser understands the <APPLET> tag but isn't running the applet, for some reason."
      Your browser is completely ignoring the <APPLET> tag!
</applet>
 
  </BODY>
</HTML>



// Orignal code of "simplearea.java  with modification for Adding
Applet//


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import ChartDirector.*;
import java.applet.*;

import java.io.*;

import java.util.*;


import javax.swing.event.*;

import javax.swing.border.*;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;


public class simplearea extends Applet implements DemoModule
{
    //Name of demo program
    public String toString() { return "Simple Area Chart"; }

    //Number of charts produced in this demo
    public int getNoOfCharts() { return 1; }

    //Main code for creating charts
    public void createChart(ChartViewer viewer, int index)
    {
        // The data for the area chart
        double[] data = {30, 28, 40, 55, 75, 68, 54, 60, 50, 62, 75, 65, 75, 89, 60,
            55, 53, 35, 50, 66, 56, 48, 52, 65, 62};

        // The labels for the area chart
        String[] labels = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
            "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
            "23", "24"};

        // Create a XYChart object of size 250 x 250 pixels
        XYChart c = new XYChart(250, 250);

        // Set the plotarea at (30, 20) and of size 200 x 200 pixels
        c.setPlotArea(30, 20, 200, 200);

        // Add an area chart layer using the given data
        c.addAreaLayer(data);

        // Set the labels on the x axis.
        c.xAxis().setLabels(labels);

        // Display 1 out of 3 labels on the x-axis.
        c.xAxis().setLabelStep(3);

        // Output the chart
        viewer.setImage(c.makeImage());

        //include tool tip for the chart
        viewer.setImageMap(c.getHTMLImageMap("clickable", "",
            "title='Hour {xLabel}: Traffic {value} GBytes'"));
    }

    //Allow this module to run as standalone program for easy testing


public static void main(String[] args)
    {
        //Instantiate an instance of this demo module
        DemoModule demo = new simplearea();

        //Create and set up the main window
        JFrame frame = new JFrame(demo.toString());
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);} });
        frame.getContentPane().setBackground(Color.white);

        // Create the chart and put them in the content pane
        ChartViewer viewer = new ChartViewer();
        demo.createChart(viewer, 0);
        frame.getContentPane().add(viewer);

        // Display the window
        frame.pack();
        frame.setVisible(true);
    }



  
}

Open in new window

Author

Commented:
ChartDirector_s.jar file is provided by the software libray vendor


if you want to run it as applet, you should define the init method and then add the chartviewer to the applet container!

Author

Commented:
How, Ksicananth ?
Check out this example..its similar to what you want to do.

http://java.sun.com/docs/books/tutorial/deployment/applet/developingApplet.html
Pleae add below init() method to run it as Applet

public void init()
{
    ChartViewer viewer = new ChartViewer();
    demo.createChart(viewer, 0);
    add(viewer);
}

--------------------
Compilet the java and,
after this, make a html file and embed yr applet, and open this html to your browser:

<applet code="simplearea.class" width="300" height="300"></applet>

Author

Commented:
THanks, all, it works fine finaly

Author

Commented:
Since ojects  is first one to trigger me to finish my questiona dn answer , and
pramodkrjsr is also giving us a lot of  great advise. It is hard to say who help
the most or first or later . I think Thermoduic will help this out

Thanks all of you to EE and sharing purpose together with fun and technical

BR
Duncan