Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Applet not initialized error

 
Ranch Hand
Posts: 338
Scala Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Sir/Madam,
I have downloaded one Applet.
The Applet Code compiles fine but when running the same using the appletviewer utily,it starts the applet but says that I have not Initialised the Applet.
Can you please helpme out in solving the above error.


The code is as follows:-



// Traffic simulation, Kelly Liu, Feb, 1996
//Tel: (508) 647-7662 (o) (508) 875-2973

import java.io.InputStream;
import java.net.URL;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.applet.*;
import java.applet.Applet.*;

/*
<applet code ="Graph" width =1000 height=500>
</applet>
*/

class Node {
double x;
double y;
int lane;
int road;
double dx;
double dy;
String lbl;
int carW;
int carL;
double carWaiting;
}

class ChangeLight implements Runnable {
int signal;
int pauss, redpauss, greenpauss;
Thread lighter;

ChangeLight(){
signal=1;
redpauss=6000;
greenpauss=6000;
}

public void run() {
signal=1;
while (true) {
if (signal==1){
signal=0;
pauss=greenpauss;
}
else {
signal=1;
pauss=redpauss;
}
try {
Thread.sleep(pauss);
} catch (InterruptedException e) {
break;
}
}
}
public void start() {
lighter = new Thread(this);
lighter.start();
}
public void stop() {
lighter.stop();
}
}

class CalFlow implements Runnable {
int carnum, count;
double carwt;
int pauss;
double time0, time1, timelap;
double carflow[] = new double[40];

Thread flow;

CalFlow(){
carnum=0;
carwt=0;
pauss=2000;
time0=0;
time1=0;
for (int k=0; k<40; k++)
carflow[k]=0;
count=0;
}

public void run() {
while (true) {
time1= System.currentTimeMillis();
timelap=time1-time0;
if (timelap >50)
carflow[count]= ((double)(carnum)/timelap)*1000;
count=(count+1)%40;

try {
Thread.sleep(pauss);
} catch (InterruptedException e) {
break;
}
}
}
public void start() {
flow = new Thread(this);
flow.start();
}
public void stop() {
flow.stop();
}
}


class GraphPanel extends JApplet implements Runnable {
Graph graph;
int nnodes;
int lghtOrStp;
Node nodes[] = new Node[100];
ChangeLight light[] = new ChangeLight[5];
CalFlow carpermin[] = new CalFlow[5];
Thread relaxer, flow;
int brgflag[] = new int[5];
double speed=10;
int carwidth=6, carlength=9;
int xpos[]= new int[5];
int ypos=200;
int brgright[] = new int[5];
int brgleft[] = new int[5];
int brgtop =ypos+ carlength;
int brgbottom=ypos- carlength;
int rdleft[]=new int[5];
int rdright[] = new int[5];
int rdtop= ypos+ carwidth, rdbottom= ypos- carwidth;

GraphPanel(Graph graph) {


lghtOrStp=1; //stop :0, light: 1
this.graph = graph;
for (int i=0; i<5; i++)
{
light[i]= new ChangeLight();
carpermin[i]= new CalFlow();

xpos[i]=150*(i+1);
brgright[i]=xpos[i]- carlength;
brgleft[i]=xpos[i]+ carlength;
brgflag[i]=0;
}
for(int k=1; k<4; k++){
rdleft[k]= xpos[k-1]- carwidth;
rdright[k]= xpos[k-1]+ carwidth;
}
rdleft[0]=0;
rdright[0]=0;
}

int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
if (nodes[i].lbl.equals(lbl)) {
return i;
}
}
return addNode(lbl);
}
int addNode(String lbl) {
int temp;
Node n = new Node();
temp = (int)(5*Math.random());
if (temp==0||temp==4){
n.x = 480 + 210*Math.random();
n.y= ypos;
n.carW=carlength;
n.carL=carwidth;
}
else{
n.x= xpos[temp-1];
n.y= 10+100*Math.random();
n.carW=carwidth;
n.carL=carlength;
}
// temp=(int)(3*Math.random()); // three lanes
// n.y = 150+50*temp;
if (temp==4)
temp=0;
n.road=temp;
n.lbl = lbl;
n.carWaiting=-1;
nodes[nnodes] = n;
return nnodes++;
}

public void run() {
for (int j=0; j<5; j++)
light[j].signal=1;

flow = new Thread(carpermin[0]);
carpermin[0].time0 = System.currentTimeMillis();
carpermin[0].carnum=0;
flow.start();
while (true) {
relax();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
break;
}
}
}

synchronized void relax() {
for (int i = 0 ; i < nnodes; i++) {
if (nodes[i].road==0){
nodes[i].dx = -speed*Math.random();
nodes[i].dy = 2*Math.random()-1;
}
else{
nodes[i].dy = speed*Math.random();
nodes[i].dx = 2*Math.random()-1;
}
}
for (int i = 0 ; i < nnodes ; i++) {
Node n1 = nodes[i];
double dx = 0;
double dy = 0;
for (int j = 0 ; j < nnodes ; j++) {
Node n2 = nodes[j];
if (i == j||n1.road!=n2.road) {
continue;
}
double vx;
if(n1.road==0)
vx = n1.x - n2.x;
else
vx= n2.y-n1.y;
if (vx<0)
continue;
double len=vx;

if( len<(n2.carW+n2.carL)){
if (n1.carWaiting<0)
n1.carWaiting= System.currentTimeMillis();

if(n1.road==0)
n1.dx=0;
else
n1.dy=0;
}
}

}
//move a car
Dimension d = size();
double temp;
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes[i];
if(n.road==0){
temp=n.x;
n.x += Math.max(-10, Math.min(10, n.dx));
for (int k=0; k<3; k++){
if ((n.x<brgleft[k]&&n.x>brgright[k])&&brgflag[k]==1){
if(temp> brgleft[k] ||temp<brgright[k])
n.x=temp;
}
else if ((n.x< brgleft[k] &&n.x>brgright[k])&&brgflag[k]==0)
if (lghtOrStp==0)
brgflag[k]=1;
else{
if (light[k].signal==0)
brgflag[k]=1;
else
n.x=temp;
}
else if(temp< brgleft[k] &&temp>brgright[k])
brgflag[k]=0;
if (n.x < 0) {
n.x = d.width-10*Math.random();
carpermin[0].carnum=carpermin[0].carnum+1;
} else if (n.x > d.width) {
n.x = d.width-10*Math.random();
}
if (n.x!=temp&&n.carWaiting==-1){
carpermin[0].carwt+= System.currentTimeMillis()-
n.carWaiting;
n.carWaiting=-1;
}
}
}
else{
temp=n.y;
n.y += Math.max(-10, Math.min(10, n.dy));
if ((n.y<brgtop&&n.y>brgbottom)&&brgflag[n.road-1]==1){
if(temp> brgtop ||temp<brgbottom)
n.y=temp;
}
else if ((n.y< brgtop &&n.y>brgbottom)&&brgflag[n.road-1]==0)
if (lghtOrStp==0)
brgflag[n.road-1]=1;
else{
if (light[n.road-1].signal==1)
brgflag[n.road-1]=1;
else
n.y=temp;
}
else if(temp< brgtop &&temp>brgbottom)
brgflag[n.road-1]=0;

if (n.y > d.height||n.y<0) {
n.y = 10*Math.random();
carpermin[0].carnum=carpermin[0].carnum+1;
}
}
}
repaint();
}

Node pick;
double pickoldx, pickoldy;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;

final Color selectColor = Color.pink;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(250, 220, 100);

public void paintNode(Graphics g, Node n) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n==pick) ? selectColor : nodeColor);
int w= n.carW;
int h=n.carL;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
g.drawString(".", x-w/2+2, y+h/2-2);
}

public void paintRoad(Graphics g){
Dimension d = size();
g.setColor(Color.gray);
for(int k=1; k<4; k++){
g.drawLine(rdleft[k], 0, rdleft[k], rdbottom);
g.drawLine(rdleft[k], rdtop, rdleft[k], d.height);
g.drawLine(rdright[k], 0, rdright[k], rdbottom);
g.drawLine(rdright[k], rdtop, rdright[k], d.height);
g.drawLine(rdright[k-1], rdtop, rdleft[k], rdtop);
g.drawLine(rdright[k-1], rdbottom, rdleft[k], rdbottom);
}
g.drawLine(rdright[3], rdbottom, d.width, rdbottom);
g.drawLine(rdright[3], rdtop, d.width, rdtop);
}

public void paintLghtPeriod(Graphics g){
Font warnFont, dispFont, stopFont;
warnFont=new Font("Arial", Font.BOLD, 20);
dispFont=new Font("TimesRoman", 0, 12);
stopFont=new Font("TimesRoman", Font.BOLD, 14);
Dimension d = size();

offgraphics.setColor(Color.black);
if(lghtOrStp==1){
offgraphics.drawString("Traffic Light Period (1: red, 0: green)", 600,50);
offgraphics.setColor(Color.red);
offgraphics.drawString("red", 714, 50);
offgraphics.setColor(Color.green);
offgraphics.drawString("green", 747, 50);
offgraphics.setColor(Color.black);
for(int k=0; k<3; k++){
int tempred= light[k].redpauss/200, tempgreen= light[k].greenpauss/200;
int temp1=rdright[3]+170;
int temp2, temp3, temp4, temp5;
if (light[k].signal==0){
temp2=temp1+tempred;
temp3=30*(k+1)+40;
temp4= temp2+tempgreen;
temp5=temp3+12;
}
else{
temp2=temp1+tempgreen;
temp3=30*(k+1)+40+12;
temp4= temp2+tempred;
temp5=temp3-12;
}
offgraphics.drawString("Light " +Integer.toString(k+1), temp1-40, (temp5+temp3)/2+5);
while (temp1<d.width){
offgraphics.drawLine(temp1, temp3, temp2, temp3);
offgraphics.drawLine(temp2, temp5, temp4, temp5);
offgraphics.drawLine(temp1, temp3, temp1, temp5);
offgraphics.drawLine(temp2, temp3, temp2, temp5);
temp1=temp4;
temp2=temp1+tempred;
temp4=temp2+tempgreen;
}
}
offgraphics.setColor(Color.lightGray);
offgraphics.fillRect(rdright[3]+328, 30, 15, 130);
offgraphics.setColor(Color.gray);
offgraphics.drawRect(rdright[3]+120, 20, 223, 145);
offgraphics.setColor(Color.black);
}
else{
offgraphics.setFont(warnFont);
offgraphics.setColor(Color.white);
offgraphics.fillOval(rdleft[3]+175, rdtop-160, 70, 70);
offgraphics.setColor(Color.red);
offgraphics.fillOval(rdleft[3]+180, rdtop-155, 60, 60);
offgraphics.setColor(Color.white);
offgraphics.drawString("STOP", rdleft[3]+183, rdtop-116);
offgraphics.setColor(Color.black);
offgraphics.setFont(dispFont);
offgraphics.drawString("(California)", rdleft[3]+185, rdtop-50);
}
}

public void paintLights(Graphics g){
Font dispFont, stopFont;
dispFont=new Font("TimesRoman", 0, 12);
stopFont=new Font("TimesRoman", Font.BOLD, 14);

g.setFont(dispFont);
int lightwidth=15;
for(int k=1; k<4; k++){
if(lghtOrStp==0){
g.setColor(Color.red);
g.fillOval(rdleft[k]-18, rdtop+4, lightwidth, lightwidth);
g.setColor(Color.white);
g.setFont(stopFont);
g.drawString("S", rdleft[k]-14, rdtop+16);
g.setFont(dispFont);
}
else{
g.setColor(Color.black);
g.fillRect(rdleft[k]-18, rdtop+4, lightwidth-2, lightwidth-2);
g.setColor(light[k-1].signal==1 ? Color.red : Color.green);
g.fillOval(rdleft[k]-7, rdtop+6, 6, 9);
g.setColor(light[k-1].signal==1 ? Color.green : Color.red);
g.fillOval(rdleft[k]-16, rdtop+2, 9, 6);
g.setColor(Color.black);

g.drawString("Light "+k, rdleft[k]-58, rdtop+17);
}
}
}

public void paintAxies(Graphics g){
int temp1=610;
int temp2=350;
int temp3=temp1+160;
int temp4= temp2-80;
offgraphics.setColor(Color.gray);
offgraphics.drawRect(rdright[3]+120, temp4-35, 220, 130);
offgraphics.setColor(Color.black);
offgraphics.drawLine(temp1, temp2, temp3, temp2);
offgraphics.drawLine(temp3, temp2, temp3-10, temp2-2);
offgraphics.drawLine(temp3, temp2, temp3-10, temp2+2);
offgraphics.drawLine(temp1, temp2, temp1, temp4);
offgraphics.drawLine(temp1, temp4, temp1-2, temp4+10);
offgraphics.drawLine(temp1, temp4, temp1+2, temp4+10);
for (int k=1; k<4; k++){
int grid=20*k;
offgraphics.drawLine(temp1, temp2- grid, temp1+5, temp2- grid);
offgraphics.drawString(k+".0", temp1- 20, temp2- grid+5);
}
offgraphics.drawString("Time", temp3-10, temp2-10);
offgraphics.drawString("Traffic Flow ", temp1-20, temp2-95);
offgraphics.drawString(" (cars/sec.)", temp1-20, temp2-82);

for (int k=0; k<40; k++){
if (k>=carpermin[0].count){
temp3=1;
offgraphics.setColor(Color.gray);
}
else{
temp3=2;
offgraphics.setColor(Color.black);
}
offgraphics.drawRect(k*3+temp1, temp2 - (int)(carpermin[0].carflow[k]*20+1), temp3, temp3);
}
}

public synchronized void update(Graphics g) {

Dimension d = size();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
}

offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
paintRoad(offgraphics);
//draw lights
paintLights(offgraphics);
//draw light period
paintLghtPeriod(offgraphics);
//draw axies for the flow chart
paintAxies(offgraphics);
//draw cars
for (int i = 0 ; i < nnodes ; i++) {
paintNode(offgraphics, nodes[i]);
}
g.drawImage(offscreen, 0, 0, null);
}

public synchronized boolean mouseDown(Event evt, int x, int y) {
double bestdist = Double.MAX_VALUE;
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes[i];
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
pickoldx=n.x;
pickoldy=n.y;
bestdist = dist;
}
}
pick.x = x;
pick.y = y;
repaint();
return true;
}

public synchronized boolean mouseDrag(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
repaint();
return true;
}

public synchronized boolean mouseUp(Event evt, int x, int y) {
boolean insidelane;
pick.x = x;
pick.y = y;
insidelane=false;
for (int k=1; k<4; k++)
if (x>rdleft[k]&&x<rdright[k])
{
pick.road=k;
pick.x=xpos[k-1];
pick.carW= carwidth;
pick.carL= carlength;
insidelane=true;
}
if (!insidelane&&(y<rdtop&&y>rdbottom))
{
pick.road=0;
pick.y=ypos;
pick.carW= carlength;
pick.carL= carwidth;

}
else if(!insidelane)
{
pick.x=pickoldx;
pick.y=pickoldy;
}
pick = null;

repaint();
return true;
}

public void start() {
relaxer = new Thread(this);
relaxer.start();
}
public void stop() {
relaxer.stop();
}
}

public class Graph extends JApplet {
JButton b1,b2,b3,b4,b5;
GraphPanel panel;
int carnum;
Thread LightThrd[] = new Thread[3];
public void init() {
setLayout(new BorderLayout());

panel = new GraphPanel(this);
add("Center", panel);

carnum = Integer.parseInt(getParameter("carnum"));
carnum=Math.min(carnum, 70);
for (int k=0; k<carnum; k++)
panel.findNode(Integer.toString(k));
panel.lghtOrStp=1;
for (int k=0; k<3; k++){
LightThrd[k] = new Thread(panel.light[k]);
panel.light[k].redpauss=(k+1)*1000+3000;
panel.light[k].greenpauss=panel.light[k].redpauss;
LightThrd[k].start();
}
panel.carpermin[0].time0 = System.currentTimeMillis();
panel.carpermin[0].carnum=0;
JButton b1=new JButton("Start");
JButton b2=new JButton("End");
JButton b3=new JButton("Stop Sign");
JButton b4=new JButton("Traffic Light");
JButton b5=new JButton("New Schedule for Lights");
JPanel btpnl=new JPanel();
add("South", btpnl);

btpnl.add(b1);
btpnl.add(b2);

btpnl.add(b3);
btpnl.add(b4);
btpnl.add(b5);
}

public boolean action(Event evt, Object arg){
if (((JButton)evt.target).getLabel().equals("Traffic Light"))
{
if (panel.lghtOrStp==0){
panel.lghtOrStp=1;
for (int k=0; k<3; k++){
LightThrd[k] = new Thread(panel.light[k]);
panel.light[k].redpauss=(k+1)*1000+3000;
panel.light[k].greenpauss=panel.light[k].redpauss;
LightThrd[k].start();
panel.carpermin[0].time0 = System.currentTimeMillis();
panel.carpermin[0].carnum=0;
}
}
}
else if (((JButton)evt.target).getLabel().equals("Stop Sign"))
{
panel.lghtOrStp=0;
for(int k=0; k<3; k++){
if (LightThrd[k].isAlive())
LightThrd[k].stop();
}
panel.carpermin[0].time0 = System.currentTimeMillis();
panel.carpermin[0].carnum=0;
}
else if (((JButton)evt.target).getLabel().equals("End"))
{
for(int k=0; k<3; k++){
if (LightThrd[k].isAlive())
LightThrd[k].stop();
}
panel.stop();
}
else if (((JButton)evt.target).getLabel().equals("Start"))
{
if(panel.lghtOrStp==1)
for(int k=0; k<3; k++){
if (!LightThrd[k].isAlive()){
LightThrd[k] = new Thread(panel.light[k]);
LightThrd[k].start();
}
}
if (!panel.relaxer.isAlive())
panel.start();
}
else if (((JButton)evt.target).getLabel().equals("New Schedule for Lights"))
{
if (panel.lghtOrStp==1){
for(int k=0; k<3; k++){
if (LightThrd[k].isAlive()){
panel.light[k].redpauss=(int)(Math.random()*6000)+3000;
panel.light[k].greenpauss=(int)(Math.random()*6000)+3000;
}
}
panel.carpermin[0].time0 = System.currentTimeMillis();
panel.carpermin[0].carnum=0;
panel.carpermin[0].carwt=0;

}
}
return true;
}
public void start() {
panel.run();
}
public void stop() {
panel.stop();
}
}
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
The applet throws an exception (which you'll see in the Java Console, or the command line if you started appletviewer from there). In short, the applet expect a parameter, which is not supplied in the HTML. I'll leave it as an exercise for you to figure out what the parameter is named. Details about how to pass parameters to applets can be found here.

Also, in the future please UseCodeTags. They make code much easier to read.
[ January 12, 2007: Message edited by: Ulf Dittmer ]
 
Pankaj Shet
Ranch Hand
Posts: 338
Scala Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Sir,
I am not able to get which parameter is to be passed.
I am trying to solve it since your reply.
Please solve the problem i.e.Applet not initialzed.
 
Ulf Dittmer
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
We can't solve your problem for you - only you can.

Do you know what applet parameters are? If not, then the link I posted explains what they are and how they are used. The code is looking for a parameter "carnum"; that needs to be part of the applet tag in the HTML page that references this applet.
 
Pankaj Shet
Ranch Hand
Posts: 338
Scala Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Sir,
I tried all the ways to run the applet.
After passing the parameter carnum to the applet tag,it says that applet initialized.
but it is still not displaying anything.
 
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Moving to our "Applets" forum.
 
Ulf Dittmer
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Safari doesn't seem to like the applet either (nothing gets displayed, like you described), but using appletviewer it runs fine.
 
Pankaj Shet
Ranch Hand
Posts: 338
Scala Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
sir,
What should i do to display safari in the applet?
 
Ulf Dittmer
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Umm, Safari is a web browser.
 
Pankaj Shet
Ranch Hand
Posts: 338
Scala Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
sir,
I want my applet to display somehing.Please start my applet for me.
I want to submit this as my project work in my college.
-Thank you.
 
Ulf Dittmer
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
You want to take someone else's 10 year old code and submit it as something you did recently?

That's not behavior I want to support, so I'm going to bow out here.
 
Pankaj Shet
Ranch Hand
Posts: 338
Scala Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Sir,
I am very sorry for doing that,but what can i do?I am the failure and i want to complete it any how this year.I have to concentrate on other subjects which i m failing and dont want to fail again.
I am extremely very sorry for that?I have to submit it within two days.
At this point of time can you suggest me what can i do?
Please help me,I dont want to fail again.it's really frustrating.
I Promise you this is the first and the last time I am behaving like like that.Please save my year.
Your,s faithfully
-pankaj.
 
Ernest Friedman-Hill
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
:roll:
 
    Bookmark Topic Watch Topic
  • New Topic