2015-08-09 1 views
4

Я пишу программу Java, которая использует пользовательский интерфейс на основе Swing, однако мне нужен был доступ к WebView, поэтому я применил JFXPanel, чтобы позаботиться об этом. WebView должен загрузить рекламный баннер в программу, которую пользователь может щелкнуть, если хотите. В настоящее время при нажатии на рекламу новая страница загружается в пределах WebView. Если возможно, я хотел бы, чтобы страница открывалась в браузере по умолчанию пользователя и содержала страницу с обновлением рекламы. Как я могу это достичь?Открытые гиперссылки в JavaFX WebView с браузером по умолчанию

+0

Возможный дубликат [HyperlinkListener в JavaFX WebEngine] (http://stackoverflow.com/questions/17555937/hyperlinklistener-in-javafx-webengine) – Goombert

ответ

0
engine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() 
     { 
      @Override 
      public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue, 
        Worker.State newValue) 
      { 
      String toBeopen = 
          engine.getLoadWorker().getMessage().trim(); 
        System.out.println("tobeopen: " + toBeopen); 
        if (toBeopen.contains("http://") || toBeopen.contains("https://")) { 
         engine.getLoadWorker().cancel(); 
         try { 
           Desktop.getDesktop().browse(new URL(toBeopen).toURI()); 
          } 
          catch (MalformedURLException e) { 
           e.printStackTrace(); 
          } 
          catch (URISyntaxException e) { 
           e.printStackTrace(); 
          } 
          catch (IOException e) { 
           e.printStackTrace(); 
          } 
        } 
      } 
}); 
+1

Обычно это лучше объяснить решение вместо того, чтобы просто разместить несколько строк анонимного кода. Вы можете прочитать [Как написать хороший ответ] (https://stackoverflow.com/help/how-to-answer), а также [Объяснение полностью основанных на кодах ответов] (https://meta.stackexchange.com/questions/114762/explaining-whole-% E2% 80% 8C% E2% 80% 8Bcode-based-ответы) –

+0

@AnhPham Правда, но, по крайней мере, это начало. Спасибо за то, что он первым поднялся и ответил на это Санджай! – DavidB

Смежные вопросы