Java/17. JavaFX

Day 25 : JavaFX 레이아웃 - 프로그램적 레이아웃

pancakemaker 2021. 11. 23. 09:56

자바 코드로 UI 컨트롤을 배치

레이아웃이 복잡해지면 프로그램적 방법은 코드까지 복잡해져 난해한 프로그램이 될 확률이 높음

모든 것을 개발자가 직접 작성해야 하므로 디자이너와 협력해서 개발하는 것이 어려움

단점 : 개발 완료 후, 간단한 레이아웃 변경이나 스타일 변경이 필요하면 자바 소스를 수정하고 컴파일해야 함

 

프로그램적 레이아웃

package sec03.exam01_programmatical_layout_YJ;

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class AppMain extends Application {

	@Override
	public void start(Stage primaryStage) throws Exception {
		HBox hbox = new HBox(); //Horizontal Layout - 루트 컨테이너 Parent의 하위 객체 HBox 생성
		hbox.setPadding(new Insets(10, 10, 10, 10)); //안쪽 여백 설정
		hbox.setSpacing(10); //컨트롤 간의 수평 간격 설정
		
		TextField textField = new TextField(); //TextField 컨트롤 생성
		textField.setPrefWidth(200); //TextField의 폭 설정
		
		Button button = new Button(); //Button 컨트롤 생성
		button.setText("확인"); //Button 글자 설정
		
		ObservableList list = hbox.getChildren(); //HBox의 ObservableList 얻기
		list.add(textField); //TextField 컨트롤 배치
		list.add(button); //Button 컨트롤 배치
		
		Scene scene = new Scene(hbox); //장면 생성
		
		primaryStage.setTitle("AppMain"); //윈도우 창 제목 설정"
		primaryStage.setScene(scene); //윈도우 창에 장면 설정
		primaryStage.show(); //윈도우 창 보여주기
	}		
	
	
	public static void main(String[] args) {
		launch(args);
	}
}