0
이것은 내 첫 번째 게시물이므로 부정확 한 점을 용서하십시오. 내 문제 나 초기화 방법자바 스크립트에서 값을 JavaFX로 전달
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
final URL urlGoogleMaps = getClass().getResource("googlemaps.html");
System.out.println("fjdsoij");
browser.getEngine().load(urlGoogleMaps.toExternalForm());
WebEngine webEngine = browser.getEngine();
webEngine.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>(){
@Override
public void changed(ObservableValue<? extends State> ov, State oldState, State newState) {
if(newState == State.SUCCEEDED){
JSObject window = (JSObject)webEngine.executeScript("window");
window.setMember("app", new JavaApplication());
}
}
});
}
public class JavaApplication{
public void calljavascript(int lengthInMeters){
System.out.println(lengthInMeters);
}
}
}
및 자바 스크립트 부분 자바 FX에 자바 스크립트 함수로부터 값을 전달할이
function initialize() {
var mapOptions = {
zoom: 3,
center: new google.maps.LatLng(0, -180),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var flightPlanCoordinates = [
new google.maps.LatLng(37.772323, -122.214897),
new google.maps.LatLng(21.291982, 157.821856)
];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
//geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
var lengthInMeters = google.maps.geometry.spherical.computeLength(flightPath.getPath());
flightPath.setMap(map);
alert("polyline is "+lengthInMeters+" long");
app.calljavascript(lengthInMeters);
}
google.maps.event.addDomListener(window, 'load', initialize);
같은 내가 원하는 값 패스는 lengthInMeters 메서드에 calljavascript 어떤 아이디어입니까? 나는 코드의 단순화 된 버전을 시도했습니다 사전
yap 그것은 해결책이었습니다. 이제는 모든 것이 잘 작동합니다. :) – n00bfighter
결과로드 호출에서 작동하지 않습니다. 더 이상로드하기 전에 멤버를 설정할 수 없습니다. 더 나은 해결책이 있습니까? – mohamnag
이 솔루션을 추천하는 새로운 질문을 올리십시오. –