javaappletparameter-passingappletviewer

Adding two integer values by passing parameters through an applet


The following java program gets compiled successfully but when I try to run it using appletviewer, I get the following (in command prompt) with a message "applet not initialized" in the applet window.

import java.applet.*;
import java.awt.*;
/*
<applet code="ParamDemo" width="300" height="300">
<param name="first" value="20">
<param name="second" value="30">
</applet>
*/
class ParamDemo extends Applet
{
int x,y,sum;
public void init()
{
x=Integer.parseInt(getParameter("first"));
y=Integer.parseInt(getParameter("second"));
}
public void paint(Graphics g)
{
sum=x+y;
g.drawString("Total Sum is"+sum,100,100);
}
}

in the Command prompt -

C:\Documents and Settings\Salman\Desktop>javac ParamDemo.java

C:\Documents and Settings\Salman\Desktop>appletviewer ParamDemo.java
load: ParamDemo is not public or has no public constructor.
java.lang.IllegalAccessException: Class sun.applet.AppletPanel can not access a
member of class ParamDemo with modifiers ""
        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95)
        at java.lang.Class.newInstance0(Class.java:368)
        at java.lang.Class.newInstance(Class.java:327)
        at sun.applet.AppletPanel.createApplet(AppletPanel.java:793)
        at sun.applet.AppletPanel.runLoader(AppletPanel.java:722)
        at sun.applet.AppletPanel.run(AppletPanel.java:379)
        at java.lang.Thread.run(Thread.java:722)

I am unable to figure out the problem ...

Any help would be appreciated !


Solution

  • ParamDemo is not public

    indicates you shall write public before class ParamDemo extends ....

    If no access modifier (such as public) is given for class, it is only accessible within the same package - no wonder appletviewer has problems with it.

    An explicit constructor shouldn't be neccessary.