通过applet传递参数来添加两个整数值

时间:2013-05-01 17:33:42

标签: java applet parameter-passing appletviewer

以下java程序成功编译但当我尝试使用 appletviewer 运行它时,我得到以下内容(在命令提示符中),并显示消息“ applet未初始化 “在小程序窗口中。

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);
}
}
命令提示符中的

-

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)

我无法弄清楚问题......

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

  

ParamDemo不公开

表示您应在public之前写下class ParamDemo extends ...

如果没有为类提供访问修饰符(例如public),它只能在同一个包中访问 - 难怪appletviewer有问题。

显式构造函数不一定是必需的。

答案 1 :(得分:0)

您需要将ParamDemo类定义为public并定义一个函数:

ParamDemo() {
    //Construct your object here.
} 

在ParamDemo类中。