#java #javascript #swing #applet
#java #javascript #swing #апплет
Вопрос:
я пытаюсь отправить строку из моего приложения swing на javascript, я пытался использовать JSObject sendIt = JSObject.GetWindow (this); но я получаю следующую ошибку
«потому что метод GetWindow в классе netscape.javascript.JSObject не может быть применен к заданным типам; требуется: java.applet.Найден апплет: причина работы: фактический аргумент work не может быть преобразован в java.applet.Преобразование апплета с помощью вызова метода»
части моего кода ниже
public class work extends javax.swing.JFrame {
private void uploadButtonMouseClicked (java.awt.event.MouseEvent evt) {
// System.out.println("its here");
theHash = (String) sender.uploadFunction(filesArray[i], uuid);
System.out.println("Uploading " filesArray[i] "n");
JSObject sendIt = JSObject.getWindow(this); //error
}
}
Комментарии:
1. 1) Исправьте форматирование, если ваш код. 2) Каким образом объект JFrame будет иметь контекст javascript, с которым можно работать? Вот о чем говорит ошибка; вы не находитесь в среде апплета. Что вы пытаетесь сделать и почему? Вы говорите о двух разных частях; Java обычно является серверной частью, а Javascript является интерфейсной частью / клиентской частью.
2. я создаю приложение перетаскивания для загрузки файлов через sftp, все файлы, удаленные в область jtext, загружаются и сохраняются на сервере в папке со случайным строковым именем для каждой загрузки, я хотел бы передавать это строковое имя функции javascript после каждой загрузки
3. Взгляните на документ об обмене данными между Java и Javascript .
Ответ №1:
Вы можете вызывать только JSObject.getWindow(this)
из своего объекта Applet, поэтому ‘this’ должно быть ссылкой на объект Applet.
Кстати, вы должны включить это в своем теге апплета:
<APPLET code="..." width="..." height="..." MAYSCRIPT>