2013-05-01 4 views
0

Следующая программа Java получает успешно компилируется, но когда я пытаюсь запустить его с помощью Appletviewer, я получаю следующее (в командной строке) с сообщением "апплет не инициализирован "в окне апплета.Добавление двух целочисленных значений путем передачи параметров через апплет

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

Класс должен быть помечен как открытый, например. 'public class ParamDemo расширяет Applet' по сравнению с просто классом ParamDemo extends Applet' – gparyani

+0

Он работает ... Спасибо @gparyani – Salman

ответ

1

ParamDemo не является публичной

означает, что вы должны написать public перед тем class ParamDemo extends ....

Если для класса не задан модификатор доступа (такой как открытый), он доступен только в одном пакете - неудивительно, что у appletviewer есть проблемы с ним.

Явный конструктор не должен быть необходимым.

0

Вам нужно определить класс ParamDemo, как общественность и определить функцию:

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

В классе ParamDemo.