Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача objecta / 23 сообщений из 23, страница 1 из 1
11.09.2015, 15:10
    #39049300
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
Ребята всем привет.
Подскажите пожалуйста как с java передать Object в javascript.


вот мой код подскажите что не правильно.


java

Код: java
1.
2.
3.
 private void MapScript(double mapX, double mapY, Object[] labelX, Object[] labelY){
        webEngine.executeScript("init(" + mapX + "," + mapY + ","+ labelX +","+ labelY +")");  
    }



javascript

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
 function init(x, y, xlabel, ylabel){
   
        myMap = new ymaps.Map("map", {
            center: [x, y],
            zoom: 10
        });
        
        blueCollection = new ymaps.GeoObjectCollection(null, {
            preset: 'islands#blueIcon'
        }),               

                  for(var i=0;i<xlabel.length;i++){   //-добавление координат метки на яндекс карту
                    blueCoords = [[xlabel[i],ylabel[i]]];
}
               
     for (var i = 0, l = blueCoords.length; i < l; i++) {
        blueCollection.add(new ymaps.Placemark(blueCoords[i]));
    }
       myMap.geoObjects.add(blueCollection);
       
       
             d.style.width='680px';
    d.style.height='680px';  
    myMap.behaviors.enable('scrollZoom'); //включаем зум при помощи колесика
    myMap.controls.add(new ymaps.control.TypeSelector(['yandex#map', 'yandex#satellite'])); //подключаем селектор типа карты (подключены: схема, спутник)
   firstButton = new ymaps.control.Button("Кнопка");
//myMap.controls.add(firstButton, {float: 'right'});

}
...
Рейтинг: 0 / 0
11.09.2015, 15:11
    #39049302
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
Выдает ошибку


авторException in thread "JavaFX Application Thread" netscape.javascript.JSException: SyntaxError: Expected token ']'
at com.sun.webkit.dom.JSObject.fwkMakeException(JSObject.java:128)
at com.sun.webkit.WebPage.twkExecuteScript(Native Method)
at com.sun.webkit.WebPage.executeScript(WebPage.java:1427)
at javafx.scene.web.WebEngine.executeScript(WebEngine.java:948)
at price.FXMLDocumentController.MapScript(FXMLDocumentController.java:290)
at price.FXMLDocumentController.access$500(FXMLDocumentController.java:23)
at price.FXMLDocumentController$3.handle(FXMLDocumentController.java:172)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3758)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3486)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2495)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:350)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$350(GlassViewEventHandler.java:385)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$209/27770896.get(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:404)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:384)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:927)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$145(WinApplication.java:101)
at com.sun.glass.ui.win.WinApplication$$Lambda$36/17230114.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)



Подскажите где искать причину
Заранее спасибо.
...
Рейтинг: 0 / 0
11.09.2015, 15:21
    #39049314
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21,
правила хорошего тона говорят, давать ссылку на ранешнее обсуждение
...
Рейтинг: 0 / 0
11.09.2015, 15:32
    #39049328
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21, а так работает?

Код: javascript
1.
2.
function init(x, y, xlabel, ylabel){
}
...
Рейтинг: 0 / 0
11.09.2015, 15:57
    #39049366
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21,

вот это
Код: java
1.
2.
3.
private void MapScript(double mapX, double mapY, Object[] labelX, Object[] labelY){
        webEngine.executeScript("init(" + mapX + "," + mapY + ","+ labelX +","+ labelY +")");  
}



будет примерно так
webEngine.executeScript("init(1,1,[Ljava.lang.Object;@834893489,[Ljava.lang.Object;@89348934892лл);
...
Рейтинг: 0 / 0
11.09.2015, 17:29
    #39049500
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
maytonmixon21, а так работает?

Код: javascript
1.
2.
function init(x, y, xlabel, ylabel){
}


Так тоже не работает
...
Рейтинг: 0 / 0
11.09.2015, 17:30
    #39049502
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
0FDmixon21,

вот это
Код: java
1.
2.
3.
private void MapScript(double mapX, double mapY, Object[] labelX, Object[] labelY){
        webEngine.executeScript("init(" + mapX + "," + mapY + ","+ labelX +","+ labelY +")");  
}



будет примерно так
webEngine.executeScript("init(1,1,[Ljava.lang.Object;@834893489,[Ljava.lang.Object;@89348934892лл);

А как правильно?
...
Рейтинг: 0 / 0
11.09.2015, 17:31
    #39049504
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
0FDmixon21,

вот это
Код: java
1.
2.
3.
private void MapScript(double mapX, double mapY, Object[] labelX, Object[] labelY){
        webEngine.executeScript("init(" + mapX + "," + mapY + ","+ labelX +","+ labelY +")");  
}



будет примерно так
webEngine.executeScript("init(1,1,[Ljava.lang.Object;@834893489,[Ljava.lang.Object;@89348934892лл);

А как правильно передать обект?
...
Рейтинг: 0 / 0
11.09.2015, 17:35
    #39049510
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21
А как правильно передать обект?
Строкой можно. Через запятую передать 1,2,3,4,5 содержимое массива. А там - соответсвтенно
сделать обратно массив из строки.
...
Рейтинг: 0 / 0
11.09.2015, 17:41
    #39049518
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
maytonmixon21А как правильно передать обект?
Строкой можно. Через запятую передать 1,2,3,4,5 содержимое массива. А там - соответсвтенно
сделать обратно массив из строки.


Примерчик можно?
...
Рейтинг: 0 / 0
11.09.2015, 17:51
    #39049534
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
...
Рейтинг: 0 / 0
11.09.2015, 18:00
    #39049550
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21,
или https://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html -> Calling back to Java from JavaScript и например, через app передавать массивы.
app.setLabelX(...);
executeScript(...)
...
Рейтинг: 0 / 0
11.09.2015, 18:06
    #39049559
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
maytonПосмотри как тут http://stackoverflow.com/questions/409784/whats-the-simplest-way-to-print-a-java-array

Пробую так
Код: java
1.
2.
3.
4.
5.
   private void MapScript(double mapX, double mapY, Object[] labelX, Object[] labelY){
        for(int i=0;i<labelX.length;i++){
          webEngine.executeScript("init(" + mapX + "," + mapY + ","+ labelX[i] +","+ labelY[i] +")");   
        }       
    }



Неполучается. Другие примеры тоже не подходят
...
Рейтинг: 0 / 0
11.09.2015, 18:07
    #39049565
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
Но выходит другая ошибка.


авторException in thread "JavaFX Application Thread" netscape.javascript.JSException: ReferenceError: Can't find variable: init
at com.sun.webkit.dom.JSObject.fwkMakeException(JSObject.java:128)
at com.sun.webkit.WebPage.twkExecuteScript(Native Method)
at com.sun.webkit.WebPage.executeScript(WebPage.java:1427)
at javafx.scene.web.WebEngine.executeScript(WebEngine.java:948)
at price.FXMLDocumentController.MapScript(FXMLDocumentController.java:291)
at price.FXMLDocumentController.access$500(FXMLDocumentController.java:23)
at price.FXMLDocumentController$3.handle(FXMLDocumentController.java:172)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3758)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3486)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2495)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:350)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$350(GlassViewEventHandler.java:385)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$219/27770896.get(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:404)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:384)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:927)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$145(WinApplication.java:101)
at com.sun.glass.ui.win.WinApplication$$Lambda$36/17230114.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
...
Рейтинг: 0 / 0
11.09.2015, 18:10
    #39049570
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21Неполучается. Другие примеры тоже не подходят
Чо такое "неполучается"? Лог давай. Или в дебаге покажи что есть. Скриншот там...
...
Рейтинг: 0 / 0
11.09.2015, 18:21
    #39049584
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
maytonmixon21Неполучается. Другие примеры тоже не подходят
Чо такое "неполучается"? Лог давай. Или в дебаге покажи что есть. Скриншот там...



В дебаге все принимает переменные labelX и labelY но почему-то не передают в функцию init(javascript).
если ставлю обычные цифры без массива все нормально передает и все нормально работает.
Как только меняю на объект перестает работать.
...
Рейтинг: 0 / 0
11.09.2015, 18:27
    #39049590
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mixon21,

И с javascript что-то не то:
Код: java
1.
2.
3.
4.
5.
6.
7.
for(var i=0;i<xlabel.length;i++){   //-добавление координат метки на яндекс карту
    blueCoords = [[xlabel[i],ylabel[i]]];  // В blueCoords всегда blueCoords = [[xlabel[xlabel.length-1],ylabel[xlabel.length-1]]]
}
               
for (var i = 0, l = blueCoords.length; i < l; i++) {  //  blueCoords.length всегда 1
    blueCollection.add(new ymaps.Placemark(blueCoords[i]));
}
...
Рейтинг: 0 / 0
11.09.2015, 18:41
    #39049603
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
0FDmixon21,

И с javascript что-то не то:
Код: java
1.
2.
3.
4.
5.
6.
7.
for(var i=0;i<xlabel.length;i++){   //-добавление координат метки на яндекс карту
    blueCoords = [[xlabel[i],ylabel[i]]];  // В blueCoords всегда blueCoords = [[xlabel[xlabel.length-1],ylabel[xlabel.length-1]]]
}
               
for (var i = 0, l = blueCoords.length; i < l; i++) {  //  blueCoords.length всегда 1
    blueCollection.add(new ymaps.Placemark(blueCoords[i]));
}



так функция init(javascript) не получает параметры.
...
Рейтинг: 0 / 0
11.09.2015, 22:56
    #39049750
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
Ребята помогите кто знает как передать объект с java в javascript сильно надо буду очень благодарен.
...
Рейтинг: 0 / 0
11.09.2015, 23:20
    #39049762
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
Все бухают. Терпи до понедельника.
...
Рейтинг: 0 / 0
11.09.2015, 23:28
    #39049767
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
maytonВсе бухают. Терпи до понедельника.

Во вторник здавать надо а еще нада сделать email рассылку. скоторой первый раз встречаюсь.
и записку к диплому.
...
Рейтинг: 0 / 0
11.09.2015, 23:29
    #39049769
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
mayton,
так и ты знаешь ?
...
Рейтинг: 0 / 0
11.09.2015, 23:31
    #39049772
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача objecta
Это десктопное приложение на javaFX
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача objecta / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]