2014-01-12 2 views
2

미디어 스트리밍 응용 프로그램을 만들려고합니다.JavaFX WebView/WebEngine에서 사용할 URL 캡처

두 개의 JFXPanel을 포함하는 Jframe이 있습니다. 왼쪽의 JFXPanel은 www.mediacollege.com에서 샘플 비디오 클립의 링크 디렉토리를로드하는 WebView를 포함합니다. 오른쪽의 JFXPanel에는 비디오 내용을 재생하는 WebView도 있습니다. 오른쪽 패널은 현재 www.mediacollege.com에서 임베디드 링크를 재생 중입니다.

왼쪽 JFXPanel에서 URL을 캡처하면 오른쪽 패널의 WebView로 넘길 수 있습니다. 이에 대한 도움을 주시면 대단히 감사하겠습니다.

package exploration_02; 

import java.awt.Dimension; 
import java.awt.Point; 
import javafx.application.Platform; 
import javafx.embed.swing.JFXPanel; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.web.WebEngine; 
import javafx.scene.web.WebView; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

public class Exploration_02 { 


    private static final String MEDIA_URL = "http://www.mediacollege.com/video-gallery/testclips/testcardm-snellwilcox.flv"; 

    private static void initAndShowGUI() { 

     //Creating the Frame 
     JFrame frame = new JFrame("Exploration_02"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     frame.getContentPane().setLayout(null); 
     //Creating the Panels, buttons not in use. 
     final JButton jButton = new JButton("Button A"); 
     final JButton jButton1 = new JButton("Button B"); 
     final JFXPanel fxPanel = new JFXPanel(); 
     final JFXPanel fxPanel1 = new JFXPanel(); 
     //Adding the panels to the Frame 
     frame.add(jButton); 
     frame.add(jButton1); 
     frame.add(fxPanel); 
     frame.add(fxPanel1); 

     frame.setVisible(true); 
     //Panel and Button Params 
     jButton.setSize(new Dimension(200, 27)); 
     fxPanel.setSize(new Dimension(400, 450)); 
     fxPanel.setLocation(new Point(0, 27)); 

     jButton1.setSize(new Dimension(200, 27)); 
     jButton1.setLocation(new Point(501, 0)); 
     fxPanel1.setSize(new Dimension(550, 450)); 
     fxPanel1.setLocation(new Point(501, 27)); 

     frame.getContentPane().setPreferredSize(new Dimension(1100, 580)); 
     frame.pack(); 

     frame.setResizable(false); 

     Platform.runLater(new Runnable() { // this will run initFX as JavaFX-Thread 
      @Override 
      public void run() { 
       initFX(fxPanel); 
      } 
     }); 
     Platform.runLater(new Runnable() { // this will run initFX as JavaFX-Thread 
      @Override 
      public void run() { 
       initFX1(fxPanel1); 
      } 
     }); 

    } 


    /* Creates a WebView and navigates to links site */ 
    private static void initFX(final JFXPanel fxPanel) { 
     Group group = new Group(); 
     Scene scene = new Scene(group, Color.BLUE); 
     fxPanel.setScene(scene); 

     WebView webView = new WebView(); 

     group.getChildren().add(webView); 
     webView.setMinSize(300, 300); 
     webView.setMaxSize(400, 300); 

     // Obtain the webEngine. 
     WebEngine webEngine = webView.getEngine(); 

     webEngine.load("http://www.mediacollege.com/video-gallery/testclips/"); 




    } 
    //Creates a WebView for viewing the media files. 
    private static void initFX1(final JFXPanel fxPanel1) { 
     Group group1 = new Group(); 
     Scene scene1 = new Scene(group1, Color.RED); 
     fxPanel1.setScene(scene1); 

     WebView webView1 = new WebView(); 

     group1.getChildren().add(webView1); 
     webView1.setMinSize(300, 300); 
     webView1.setMaxSize(400, 300); 

     WebEngine webEngine1 = webView1.getEngine(); 
     webEngine1.loadContent(
       "<video width='360' height='288'controls='controls'>" 
       + "<source src='http://mediacollege.com/video-gallery/testclips/20051210-w50s.flv'/>" 
       + "Your browser does not support the video tag." 
       + "</video>"); 


    } 

    /* Start application */ 
    public static void main(final String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       initAndShowGUI(); 
      } 
     }); 
    } 
} 

답변

4

WebList의 WebEngine에 ChangeListener를 추가해야합니다. "JavaFX WebView addHyperlinkListener"은이를 수행하는 방법을 설명합니다.

+0

응답과 도움을 주신 의자 대단히 고맙습니다. – user3186188

+0

도움이된다면, 내 답변을 허용 된 것으로 표시 할 수 있습니다 :-) – chairbender

관련 문제