aspose file tools*
The moose likes Applets and the fly likes WHY DONT APPLETS EXECUTE??? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Applets
Bookmark "WHY DONT APPLETS EXECUTE???" Watch "WHY DONT APPLETS EXECUTE???" New topic
Author

WHY DONT APPLETS EXECUTE???

colin shuker
Ranch Hand

Joined: Apr 11, 2005
Posts: 744
Hi, I've been looking at the applets on the sun website, and I'm
trying to get them to run on NetBeans 3.5
I've tried invoking the applet with an HTML file, and also a JSP(using the jsp-plugin>, but I keep getting a ClassNotFoundException.

I've been trying to run the BarChart.java applet, as shown below.
This is placed in the classes directory of the WEB-INF directory as usual.
Also I'm using an HTML file to invoke the applet as shown here:

If anyone can explain why this doesn't work, that would be very helpful,
Thanks.





Here is the Applet BarChart.java
[CODE]
import java.awt.*;
import java.applet.Applet;

public class BarChart extends Applet
{
private static final int VERTICAL = 0;
private static final int HORIZONTAL = 1;

private static final int SOLID = 0;
private static final int STRIPED = 1;

private int orientation;
private String title;
private Font font;
private FontMetrics metrics;
private int fontHeight = 15;
private int columns;
private int values[];
private Color colors[];
private String labels[];
private int styles[];
private int scale = 10;
private int maxLabelWidth = 0;
private int barSpacing = 10;
private int maxValue = 0;

public void init()
{

getSettings();

values = new int[columns];
labels = new String[columns];
styles = new int[columns];
colors = new Color[columns];

for (int i=0; i < columns; i++) {
parseValue(i);
parseLabel(i);
parseStyle(i);
parseColor(i);
}
}

private void getSettings() {
font = new java.awt.Font("Courier", Font.BOLD, 12);
metrics = getFontMetrics(font);

title = getParameter("title");
if (title == null) {
title = "Chart";
}

String temp = getParameter("columns");
if (temp == null) {
columns = 5;
} else {
columns = Integer.parseInt(temp);
}

temp = getParameter("scale");
if (temp == null) {
scale = 10;
} else {
scale = Integer.parseInt(temp);
}

temp = getParameter("orientation");
if (temp == null) {
orientation = VERTICAL;
} else if (temp.equalsIgnoreCase("horizontal")) {
orientation = HORIZONTAL;
} else {
orientation = VERTICAL;
}
}

private void parseValue(int i) {
String temp = getParameter("C" + (i+1));
try {
values[i] = Integer.parseInt(temp);
} catch (NumberFormatException e) {
values[i] = 0;
} catch (NullPointerException e) {
values[i] = 0;
}
maxValue = Math.max(maxValue, values[i]);
}

private void parseLabel(int i) {
String temp = getParameter("C" + (i+1) + "_label");
if (temp==null) {
labels[i] = "";
} else {
labels[i] = temp;
}
maxLabelWidth = Math.max(metrics.stringWidth
((String) (labels[i])), maxLabelWidth);
}

private void parseStyle(int i) {
String temp = getParameter("C" + (i+1) + "_style");
if (temp == null || temp.equalsIgnoreCase("solid")) {
styles[i] = SOLID;
} else if (temp.equalsIgnoreCase("striped")) {
styles[i] = STRIPED;
} else {
styles[i] = SOLID;
}
}

private void parseColor(int i) {
String temp = getParameter("C" + (i+1) + "_color");
if (temp != null) {
temp = temp.toLowerCase();
if (temp.equals("red")) {
colors[i] = Color.red;
} else if (temp.equals("green")) {
colors[i] = Color.green;
} else if (temp.equals("blue")) {
colors[i] = Color.blue;
} else if (temp.equals("pink")) {
colors[i] = Color.pink;
} else if (temp.equals("orange")) {
colors[i] = Color.orange;
} else if (temp.equals("magenta")) {
colors[i] = Color.magenta;
} else if (temp.equals("cyan")) {
colors[i] = Color.cyan;
} else if (temp.equals("white")) {
colors[i] = Color.white;
} else if (temp.equals("yellow")) {
colors[i] = Color.yellow;
} else if (temp.equals("gray")) {
colors[i] = Color.gray;
} else if (temp.equals("darkGray")) {
colors[i] = Color.darkGray;
} else {
colors[i] = Color.gray;
}
} else {
colors[i] = Color.gray;
}
}

public void paint(Graphics g) {
// draw the title centered at the bottom of the bar graph
g.setColor(Color.black);
g.setFont(font);

g.drawRect(0, 0, getSize().width - 1, getSize().height - 1);

int titleWidth = metrics.stringWidth(title);
int cx = Math.max((getSize().width - titleWidth) / 2, 0);
int cy = getSize().height - metrics.getDescent();
g.drawString(title, cx, cy);

// draw the bars and their titles
if(orientation == HORIZONTAL) {
paintHorizontal(g);
} else { // VERTICAL
paintVertical(g);
}
}

private void paintHorizontal(Graphics g) {
// x and y coordinates to draw/write to
int cx, cy;
int barHeight = metrics.getHeight();

for (int i = 0; i < columns; i++) {

// set the X coordinate for this bar and label and center it
int widthOfItems = maxLabelWidth + 3 + (maxValue * scale) + 5
+ metrics.stringWidth(Integer.toString(maxValue));
cx = Math.max((getSize().width - widthOfItems) / 2, 0);

// set the Y coordinate for this bar and label
cy = getSize().height - metrics.getDescent() - metrics.getHeight()
- barSpacing - ((columns - i - 1) * (barSpacing + barHeight));

// draw the label
g.setColor(Color.black);
g.drawString(labels[i], cx, cy);
cx += maxLabelWidth + 3;


// draw the shadow
g.fillRect(cx + 4, cy - barHeight + 4,
(values[i] * scale), barHeight);

// draw the bar
g.setColor(colors[i]);
if (styles[i] == STRIPED) {
for (int k = 0; k <= values[i] * scale; k += 2) {
g.drawLine(cx + k, cy - barHeight, cx + k, cy);
}
} else { // SOLID
g.fillRect(cx, cy - barHeight,
(values[i] * scale) + 1, barHeight + 1);
}
cx += (values[i] * scale) + 4;

// draw the value at the end of the bar
g.setColor(g.getColor().darker());
g.drawString(Integer.toString(values[i]), cx, cy);
}
}

private void paintVertical(Graphics g) {
int barWidth = maxLabelWidth;

for (int i = 0; i < columns; i++) {

// X coordinate for this label and bar (centered)
int widthOfItems = (barWidth + barSpacing) * columns - barSpacing;
int cx = Math.max((getSize().width - widthOfItems) / 2, 0);
cx += (maxLabelWidth + barSpacing) * i;

// Y coordinate for this label and bar
int cy = getSize().height - metrics.getHeight()
- metrics.getDescent() - 4;

// draw the label
g.setColor(Color.black);
g.drawString(labels[i], cx, cy);
cy -= metrics.getHeight() - 3;

// draw the shadow
g.fillRect(cx + 4, cy - (values[i] * scale) - 4,
barWidth, (values[i] * scale));

// draw the bar
g.setColor(colors[i]);
if (styles[i] == STRIPED) {
for (int k=0; k <= values[i] * scale; k+=2) {
g.drawLine(cx, cy - k,
cx + barWidth, cy - k);
}
} else {
g.fillRect(cx, cy - (values[i] * scale),
barWidth + 1, (values[i] * scale) + 1);
}
cy -= (values[i] * scale) + 5;

// draw the value on top of the bar
g.setColor(g.getColor().darker());
g.drawString(Integer.toString(values[i]), cx, cy);
}
}

public String getAppletInfo() {
return "Title: Bar Chart \n"
+ "Author: Sami Shaio \n"
+ "A simple bar chart demo.";
}

public String[][] getParameterInfo() {
String[][] info = {
{"title", "string", "The title of bar graph. Default is 'Chart'"},
{"scale", "int", "The scale of the bar graph. Default is 10."},
{"columns", "int", "The number of columns/rows. Default is 5."},
{"orientation", "{VERTICAL, HORIZONTAL}",
"The orienation of the bar graph. Default is VERTICAL."},
{"c#", "int", "Subsitute a number for #. "
+ "The value/size of bar #. Default is 0."},
{"c#_label", "string", "The label for bar #. "
+ "Default is an empty label."},
{"c#_style", "{SOLID, STRIPED}", "The style of bar #. "
+ "Default is SOLID."},
{"c#_color", "{RED, GREEN, BLUE, PINK, ORANGE, MAGENTA, CYAN, "
+ "WHITE, YELLOW, GRAY, DARKGRAY}",
"The color of bar #. Default is GRAY."}
};
return info;
}
}
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42919
    
  68
Please don't SHOUT, this is a friendly place here.

Applet classes don't go into the WEB-INF/classes directory, they go in the same directory as the HTML page that displays the applet.
colin shuker
Ranch Hand

Joined: Apr 11, 2005
Posts: 744
Really? Thanks, I never knew that.
I just assumed they went in WEB-INF/classes because servlets and normal
java classes do.
But saying that, JSPs don't, and these turn into servlets really anyway.
Thanks I'll give it a try.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: WHY DONT APPLETS EXECUTE???