Как передать массив Java в javascript - PullRequest
1 голос
/ 18 апреля 2020

У меня есть приложение JavaFX, которое показывает точку местоположения на картах Google. Это работает нормально, когда я передаю только переменные в javascript. Здесь есть код в JavaFX, где я передаю имя переменной (широта и долгота)

  public void handle(ActionEvent arg0) {
                lat = Double.parseDouble(latitude.getText());
                lon = Double.parseDouble(longitude.getText());

                System.out.printf("%.2f %.2f%n", lat, lon);

                webEngine.executeScript("" +
                    "window.lat = " + lat + ";" +
                    "window.lon = " + lon + ";" +
                    "document.goToLocation(window.lat, window.lon);"
                );
            }
        });

Я хочу передать двойной массив вместо двойной переменной. Вот функция javascript, где я получаю значения от Java имя переменной (x и y)

 document.goToLocations = function(x, y) {
        alert("goToLocation, x: " + x +", y:" + y);
        var latLng = new google.maps.LatLng(x, y);
        marker.setPosition(latLng);
        map.setCenter(latLng);


    }

А вот ссылка на пример кода, который я использую Пример кода

1 Ответ

1 голос
/ 18 апреля 2020

Вы можете сделать что-то вроде:

public void handle(ActionEvent arg0) {
    List<Double> list = List.of(Double.parseDouble(latitude.getText()), Double.parseDouble(longitude.getText()));
    //Pass list.toString() to the JavaScript function
    //...
}

document.goToLocations = function(values) {
    var x = values.split(", ");
    alert(x);
    alert(x[0]);
    //...
}

List.of был добавлен в Java9. Для Java версии ниже 9 используйте следующий оператор:

List<Double> list = Arrays.asList(Double.parseDouble(latitude.getText()), Double.parseDouble(longitude.getText()));

-OR-

List<Double> list = new ArrayList<Double>();
list.add(Double.parseDouble(latitude.getText()));
list.add(Double.parseDouble(longitude.getText()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...