1
스윙 탭 패널에 크기가 조정 된 미디어 플레이어를 넣으려고합니다. 미디어 크기를 조정할 수있는 유일한 방법은 미디어보기를 사용하는 것입니다. 그러나 컨트롤러를 추가하려고하면 javafx.scene.Group에 MediaControl을 캐스팅 할 수 없습니다.스윙 및 javafx
내 코드는;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
public class JavaFX_insideTab {
private static final String MEDIA_URL = "http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv";
private static void initFxLater(JFXPanel panel) {
Group root = new Group();
Scene scene = new Scene(root, 450, 200);
// create media player
Media media = new Media(MEDIA_URL);
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
MediaView mediaView = new MediaView(mediaPlayer);
mediaView.setFitWidth(450);
mediaView.setFitHeight(200);
MediaControl mediaControl = new MediaControl(mediaPlayer);
scene.setRoot(mediaControl);
((Group) scene.getRoot()).getChildren().add(mediaView);
panel.setScene(scene);
}
private static void initSwingLater() {
JFrame jFrame = new JFrame("- JFrame -");
jFrame.setSize(540, 426);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.getContentPane().setLayout(null);
final JFXPanel jFXPanel = new JFXPanel();
jFXPanel.setBounds(0, 0, 540, 188);
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.setBounds(0, 0, 528, 392);
jFrame.getContentPane().add(tabbedPane);
JPanel panel = new JPanel();
tabbedPane.addTab("New tab", null, panel, null);
JPanel playerpanel = new JPanel();
tabbedPane.addTab("Media Player", null, playerpanel, null);
JPanel panel_1 = new JPanel();
playerpanel.add(jFXPanel);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFxLater(jFXPanel);
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
initSwingLater();
}
});
}
}
어디에 내가 잘못 갈거야?
답장을 보내 주시면 제 목표에 더 가까워집니다. 그러나 이것은 스케일되지 않은 영화를 가진 10mm 높이의 플레이어를 생성하는 것으로 보입니다. 내가하려는 일은 탭 패널에 미디어 컨트롤이있는 작은 (400 x 200 ish) 크기의 동영상을 만드는 것입니다. 스케일 된 영화는 모든 영화가 400x200 컨트롤에 들어 맞는다는 것을 의미합니다. 이게 도움이 되길 바란다. –