以下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)
我无法弄清楚问题......
任何帮助将不胜感激!
答案 0 :(得分:1)
ParamDemo不公开
表示您应在public
之前写下class ParamDemo extends ...
。
如果没有为类提供访问修饰符(例如public),它只能在同一个包中访问 - 难怪appletviewer有问题。
显式构造函数不一定是必需的。
答案 1 :(得分:0)
您需要将ParamDemo类定义为public并定义一个函数:
ParamDemo() {
//Construct your object here.
}
在ParamDemo类中。