How Do I correctly pass parms from html to applet
I have a FORM, an Action HTML, and an Applet, but cannot seem to correly pass the parameters to the applet from the form. Below is the code I have for each file. What am I missing?
Thx in advance,
Ahmedat
----- FORM CODE ---------------
<html>
<head>
<title>Histogram Tester</title>
</head>
<body>
<hr>
<h1>Histogram Tester</h1>
<FORM METHOD=POST name="Form1" ACTION="GraphHist2.html">
Enter a Title for the Histogram of Freq Polygon: <INPUT TYPE=text
NAME="gTitle"><BR>
Enter a Label for the x-axis: <INPUT TYPE=text NAME="xLabel"><BR>
Enter a Label for the y-axix: <INPUT TYPE=text NAME="yLabel"><BR>
Enter Number of Data Points: <INPUT TYPE=text NAME="numPts"><BR>
Enter Number of Classes: <INPUT TYPE=text NAME="numClasses"><BR>
<br>
Enter Up to 22 Data Values (Leave unused ones blank)<br>
Data Value 1: <INPUT TYPE=text NAME="bin0" SIZE = 6><BR>
Data Value 2: <INPUT TYPE=text NAME="bin1" SIZE = 6><BR>
Data Value 3: <INPUT TYPE=text NAME="bin2" SIZE = 6><BR>
Data Value 4: <INPUT TYPE=text NAME="bin3" SIZE = 6><BR>
Data Value 5: <INPUT TYPE=text NAME="bin4" SIZE = 6><BR>
Data Value 6: <INPUT TYPE=text NAME="bin5" SIZE = 6><BR>
Data Value 7: <INPUT TYPE=text NAME="bin6" SIZE = 6><BR>
Data Value 8: <INPUT TYPE=text NAME="bin7" SIZE = 6><BR>
Data Value 9: <INPUT TYPE=text NAME="bin8" SIZE = 6><BR>
Data Value 10: <INPUT TYPE=text NAME="bin9" SIZE = 6><BR>
Data Value 11: <INPUT TYPE=text NAME="bin10" SIZE = 6><BR>
Data Value 12: <INPUT TYPE=text NAME="bin11" SIZE = 6><BR>
Data Value 13: <INPUT TYPE=text NAME="bin12" SIZE = 6><BR>
Data Value 14: <INPUT TYPE=text NAME="bin13" SIZE = 6><BR>
Data Value 15: <INPUT TYPE=text NAME="bin14" SIZE = 6><BR>
Data Value 16: <INPUT TYPE=text NAME="bin15" SIZE = 6><BR>
Data Value 17: <INPUT TYPE=text NAME="bin16" SIZE = 6><BR>
Data Value 18: <INPUT TYPE=text NAME="bin17" SIZE = 6><BR>
Data Value 19: <INPUT TYPE=text NAME="bin18" SIZE = 6><BR>
Data Value 20: <INPUT TYPE=text NAME="bin19" SIZE = 6><BR>
Data Value 21: <INPUT TYPE=text NAME="bin20" SIZE = 6><BR>
Data Value 22: <INPUT TYPE=text NAME="bin21" SIZE = 6><BR>
<!INPUT TYPE=checkbox NAME="Dummy Checkbox">Dummy Checkbox <br>
<!INPUT TYPE=button VALUE="Draw Freq Polygon"><br>
<INPUT TYPE="SUBMIT" VALUE="Draw Histogram"><br>
</FORM>
<hr>
</body>
</html>
------------------ ACTION HTML (GraphHist2.html)--------
<html>
<head>
<title>GraphHist2</title>
</head>
<body>
<hr>
<applet name=graphapp code=GraphHist.class width=600 height=400>
</applet>
<hr>
</body>
</html>
------------------ APPLET CODE (GraphHist.java)--------
/*
Class GraphHist */
import java.awt.Graphics;
import java.awt.Color;
import java.awt.*;
public class GraphHist extends java.applet.Applet {
int nClasses = 1, nPts=1;
float[ ] dataPts={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0};
float[ ] Cnts={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ;
float[] cInterval={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0};
String gTitle =" ";
String xLbl=" ";
String yLbl=" ";
//double f(double x) {
//return 3*(getSize().width/2-x) + getSize().height/2-20;
//} //not used
public void init() {
int nPts, icWidth;
double xmin, xmax, xmed, xavg;
float[] A={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
String param, param1="";
String[] bintxt = {"bin0","bin1","bin2","bin3", "bin4", "bin5",
"bin6","bin7",
"bin8", "bin9", "bin10","bin11","bin12","bin13", "bin14", "bin15",
"bin16","bin17","bin18","bin19","bin20","bin21 "};//can input up to 22 pts
// Get graph title from user
param = getParameter("gTitle");
if (param != null) {
gTitle = param;
}
else {
gTitle = "< Insert Graph Title->";
}
// Get x-axis label from user
param = getParameter("xLabel");
if (param != null) {
xLbl = param;
}
else {
xLbl = "< Insert Label ->";
}
// Get y-axis label from user
param = getParameter("yLabel");
if (param != null) {
yLbl = param;
}
else {
yLbl = "< Insert Label ->";
}
// Get number of data pts from user
param = getParameter("numPts");//Get num of classes from jscript file
if (param != null) {
nPts = Integer.parseInt(param);
}
else {
nPts = 2;
}
// Get number of classes from user
param = getParameter("numClasses");//Get num of classes from jscript file
if (param != null) {
nClasses = Integer.parseInt(param);
}
else {
nClasses = 2;
}
// Get data Pts from user
for (int I = 0 ; I < nPts ; I++) {
param = getParameter(bintxt[i]);
if (param != null) {
dataPts[i] = Float.parseFloat(param);
}
else {
dataPts[i] = 0;
}
}
// gTitle= UserData.getgTitle();
/* End Inputs --- Start Data Manipulations Section*/
// Copy input data to a working array, and find avg of values
xavg = AppletSRank.copyArrayPlus(nPts, dataPts, A);
// Sort the working array A, and detm the median, min, and max
xmed = AppletSRank.BSort(A, nPts);
xmin = A[0];
xmax = A[nPts-1];
// Calc Class Width
icWidth = (int) ((xmax - xmin)/(float)nClasses)+1;
// Calc Class Interval Starts
cInterval[0] = (float)xmin;
for (int I = 1 ; I <= nClasses ; I++) {
cInterval [i] = cInterval[i-1]+(float)icWidth;
}
//cInterval [nClasses] = (float)xmax;
// Calc Interval (Bin) Counts
for (int j = 0 ; j < nClasses ; j++) {
Cnts[j] = 0;
for (int I = 0 ; I < nPts ; I++) {
if ((A[i]>=cInterval[j])&&(A[i]<cInterval[j+1])) {Cnts[j] +=1;}
}
}
}
/* End Data Manipulations -- Start Graphing Section*/
public void paint(Graphics g) {
double colWdth = 0,colHght=0;
double xScl=0,maxCnt=0,minCnt=0;
String str1;
//Draw x-, y- axes, and border
g.drawLine(0, 0, 0, getSize().height); //LS
g.drawLine(0, 0, getSize().width, 0); //Top
g.drawLine(0, getSize().height-1, getSize().width,
getSize().height-1);//Bott
g.drawLine(getSize().width-1, 0, getSize().width-1, getSize().height-1);
//RS
g.drawLine(0, getSize().height-30, getSize().width,
getSize().height-30);//x-axis
//draw y-ax tick marks ev 10 pts
for (int y = 0 ; y < getSize().height-30 ; y+=10)
{
g.drawLine(0,y,5,y);
}
//debug stmts
//g.setColor(Color.blue);
//g.fillRect(10,40,150,200);
//Detm max bin counts
maxCnt = Cnts[0];
for (int I = 1 ; I < nClasses ; I++)
{
maxCnt = (maxCnt > Cnts[i]) ? MaxCnt : Cnts[i];
}
xScl = (getSize().height-30)/(1.1*maxCnt);
colWdth = (double)(getSize().width/(nClasses+2));
g.setColor(Color.black);
// Draw the histogram
for (int I = 0 ; I < nClasses ; I++)
{
colHght = xScl * Cnts[i];
g.drawRect((int)colWdth*(I+1), getSize().height-30-(int)colHght,(int)colWdth,
(int)colHght);
str1 = Float.toString(Cnts[i]);
g.drawString(str1,(int)colWdth*(I+1)+3, getSize().height-30-(int)colHght);
str1 = Float.toString(cInterval[i]);
g.drawString(str1,(int)colWdth*(I+1)-4, getSize().height-18);
}
g.drawString(gTitle,getSize().width/3, 15);// Annotate graph with graph
title
g.drawString(xLbl,getSize().width/3, getSize().height-8);// Annotate graph
with x-axis label
}
}
|