Апплет в браузере - PullRequest
       5

Апплет в браузере

0 голосов
/ 28 января 2011

Как я могу использовать некоторые функции, которые были объявлены в классе апплета? т.е.

это мой класс

public class hi extends JApplet{

public void HiThere(){
    System.out.println("Hi on Java Console");
}

}

и в моем браузере объявлено что-то вроде:

<applet.... name="HI" id="HI"  ......>Ooops!!!</applet>"

но когда я попытался использовать функцию, произошла ошибка, как же можно использовать функции, объявленные в моем классе апплета? Спасибо !!!

Ответы [ 3 ]

1 голос
/ 06 февраля 2014

Чтобы вызвать методы вашего класса из js, вы должны объявить <object> в html, указав .jar или .class с вашим скомпилированным содержимым, пакетом основного класса и некоторыми другими параметрами, как в следующем примере (объект предназначен для IE, а embed для FF):

Полагаю, вы хотите вызвать метод hi.HiThere(), как определено в вашем вопросе.

<object
width="100" height="100" id="hi">
<param name = "code" value = "path.to.your.main.class.hi">
<param name = "archive" value = "jar location">
<param name = "mayscript" value = "true">
<param name = "scriptable" value = "true">
...
    <comment>
       <embed 
          code = "path.to.your.main.class.hi" 
          archive = "your jar location"
          scriptable = "true"
          width = "100" height = "100"
          name = "hi"
          ...
       </embed>
</comment>
</object>

Затем из js вы можете получить доступ к своему объекту через document, используя атрибут id в <object> или name в <embed> в примере document.hi. С помощью следующего кода вы можете вызвать метод HiThere();:

try{
   // ie, ff
   document.hi.HiThere();
}catch(Exception){
   // chrome, safari, opera
   document.hi[1].HiThere();
}

Для выполнения с последними версиями Java не забудьте соответствовать новым требованиям безопасности Java (атрибуты манифеста http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html, подпись jar ...).

1 голос
/ 03 марта 2011

Сначала вы должны сделать это изменение в вашем коде:

открытый класс HI расширяет JApplet {

public HI () {System.out.println («Привет, на консоли Java»);}

}

Когда вы это сделаете, а в вашем браузере все еще будет ошибка, отправьте точное сообщение об ошибке здесь. Также вам может понадобиться руководство «Программирование Java-апплетов для начала работы», поскольку ваш код говорит мне, что вы, похоже, не знаете, что делаете.

0 голосов
/ 20 августа 2014

Вы можете вызывать методы апплета в JavaScript:

Для этого необходимо запустить апплет из JavaScript, например,

<script src="https://www.java.com/js/deployJava.js"></script>
    <script>
        var attributes = { id: 'mainApplet', code:  
'org.jazzteam.Example', archive: 'example.jar', width: 812, height:  
635};                 
        var parameters = {};         
        deployJava.runApplet(attributes, parameters, '1.7');                 
        function actionInApplet(url) {                         
            mainApplet.appletMethod(url);                 
        }
</script>

В этом случае апплет запускается из JavaScript с id = 'mainApplet' . В апплете есть метод appletMethod () , который мы хотим вызвать. Для этого вам нужно вызвать метод, связанный с объектом JavaScript с идентификатором name. Вы также можете передать параметры вызываемым методам, как показано в этом примере.

Также необходимо знать, что метод апплета, вызываемый из JavaScript, должен быть привилегированным. Для этого вам нужно обернуть код метода в следующую «оболочку»:

AccessController.doPrivileged(new PrivilegedAction() {
    public Object run() {
        //method code
        return new Object();
    }
});

Информация взята из статьи: Часто задаваемые вопросы при разработке Java-апплета

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...