Main은 그대로 냅두고
Border Pane Center 위에 Pane(400, 400)
Pane 위에
MediaView - Code : fx:id - mediaView
Button - Code : On Action - fileOpen
Controller class 설정으로 마치고 코딩
package app; import java.io.File; import java.net.URL; import java.util.ResourceBundle; import javafx.beans.binding.Bindings; import javafx.beans.property.DoubleProperty; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; public class MainController implements Initializable{ @FXML private MediaView mediaView; Media media; MediaPlayer player; @Override public void initialize(URL location, ResourceBundle resources) { System.out.println("FXML 완"); } public void fileOpen() { // 파일 선택창 FileChooser fc = new FileChooser(); fc.setTitle("미디어 선택"); fc.setInitialDirectory(new File("C:/")); // 확장자 필터링(선택 사항) ExtensionFilter audioType = new ExtensionFilter("오디오", "*.mp3"); ExtensionFilter videoType = new ExtensionFilter("비디오", "*.mp4", "*.avi"); fc.getExtensionFilters().addAll(audioType, videoType); // 띄우기 File selectedFile = fc.showOpenDialog(null); // 창위치 null은 최상단 좌측을 의미 // System.out.println(selectedFile.toString()); System.out.println(selectedFile.toURI().toString()); String path = selectedFile.toURI().toString(); // 미디어 생성 -> 플레이어 등록 -> 뷰에 등록 media = new Media(path); player = new MediaPlayer(media); mediaView.setMediaPlayer(player); mediaView.setLayoutX(media.getWidth()); mediaView.setLayoutY(media.getHeight()); player.setAutoPlay(true); // 크기 조정, 창의 크기에 따라서 영상 사이즈 변경 DoubleProperty width = mediaView.fitWidthProperty(); DoubleProperty height = mediaView.fitHeightProperty(); width.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width")); height.bind(Bindings.selectDouble(mediaView.sceneProperty(), "height")); } }
설명은 코드의 주석
'JavaFX > 01.Node 추가' 카테고리의 다른 글
[JAVA FX]01-16.Popup 띄우기 (방법 1,2) (0) | 2018.09.12 |
---|---|
[JAVA FX]01-15.AudioPlayer (0) | 2018.09.12 |
[JAVA FX]01-13.BarChart (0) | 2018.09.11 |
[JAVA FX]01-12.Line Chart, Random (0) | 2018.09.11 |
[JAVA FX]01-11.PieChart (0) | 2018.09.11 |