JavaFX i mapa

0

Witam,

Jak korzystać z mapy internetowej (np. Google map) w aplikacji desktop-owej . Potrzebuje pobrać mapę wyświetlić np. rysować drogę. Proszę o jakieś rady, bo jak na razie to niewiele w necie znalazłem. Sporo jest na temat Javy Script, ale ja chcę to zrobić w aplikacji, a nie na stronce.

0

Masz klasy WebView i WebEngine w JavieFX 2+. Powinny sobie poradzić z załadowaniem Google Maps.

0

Tak jak napisał @Wibowit WebView oraz WebEngine, a następnie obsługa całej mapy poprzez JavaScript dokładnie tak jak opisane w internecie.

0

Mam aplikację napisaną w Javie FX 2.2 do wyświetlania google map. Korzystam z klas WebView i WebEngine. Ładują stroną html + JavaScript do obsługi i pobierania mapy(plik html jest zapisany na dysku). Wszystko ładnie chodzi, mapa się wyświetla i można z niej korzystać. Mama teraz takie pytanie jak z poziomu Javy dobrać się do pól w JavaScript. Chodzi mi konkretnie o taką sytuacje, w JavaScript mam pola które przechowują współrzędne kliknięcia i właśnie te wartości są mi potrzebne w aplikacji Java-owej.

0

Dzięki Wibowit, działa. Daję przykład jakby ktoś potrzebował

var test1 = "sdf" // JavaScript

JSObject window = (JSObject) webEngine.executeScript("window");
System.out.println(window.getMember("test1"));  // Wyświetlenie zmiennej JS z poziomu aplikacji JavaFX

Przykład wywołania funkcji Java-y z poziomu JS

<button onclick="**app**.**exxx**('tytus')">Click </button> - JavaScript


        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 **exxx**(String sss) {

            System.out.println(sss);

            }
        }
0

te gwiazdki '**' to miało być pogrubienie, ale coś nie załapało.

1 użytkowników online, w tym zalogowanych: 0, gości: 1