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

+ Recent posts