JAVA fx - JAVA fx 컨테이너 - GridPane(2) (2022-08-15)

2022. 8. 15. 23:253층 1구역 - 개발의 장/JAVAfx - GUI

1.서론

 

이전 게시물에서 GridPane에 대해 알아보았다

고찰에서도 이에 관해 간단하게 다뤄보았다.

2022.08.15 - [개발일지/문제의 고찰] - JAVA FX - Pane(컨테이너)의 원리의 대한 고찰(GridPane) (2022-08-15)

 

JAVA FX - Pane(컨테이너)의 원리의 대한 고찰(GridPane) (2022-08-15)

1. 서론 GridPane를 통해 간단한 로그인화면을 만들어보자. 2.본론 GridPane은 액셀이라고 생각하면 편할 듯 싶다. 위 사진처럼 칸을 나누고 칸마다 label이나 오브젝트를 넣어주거나 칸 자체를 병합하

sukw9512.tistory.com

 

FlowPane, GridPane에 대한 쓰임도 중요하지만 컨테이너 라는 말을 생각해보는 것도 좋을 것 같다.

왜냐하면 다음에 해볼 Quiz에 그게 확 온다...ㅋㅋㅋㅋ;;;;

 

2. 본론

 

간단한 로그인 화면에 버튼 오브젝트를 추가하고 컬러도 한번 넣어보도록 하자.

 

package layouts_0812;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class GridPaneEx2 extends Application {
	public static void main(String[] args) {
		launch(args);
	}

	@Override
	public void start(Stage primaryStage) throws Exception {
		Label label1 = new Label("아이디");
		Label label2 = new Label("비밀번호");

		TextField id = new TextField();
		PasswordField pw = new PasswordField();

		GridPane.setConstraints(label1, 0, 0);
		GridPane.setConstraints(label2, 0, 1);
		GridPane.setConstraints(id, 1, 0);
		GridPane.setConstraints(pw, 1, 1);

		GridPane grid = new GridPane();
		grid.getChildren().addAll(id, pw, label1, label2);
		grid.setVgap(20);
		grid.setHgap(40);
		grid.setPadding(new Insets(50, 0, 0, 30));

		FlowPane flow = new FlowPane();
		flow.getChildren().add(new Button("Merge col(0) row(2)"));
		//FlowPane의 가로세로 사이즈 설정
		flow.setPrefSize(250, 20);
		//FlowPane의 바탕색 설정
		//red와 같은 default색상도 설정가능하지만
		//html색상표를 통해 상세한 색상도 선택가능하다.
		//아래는 html색상표를 통한 색표현.
		flow.setStyle("-fx-background-color: #6EE3F7");
		//오브젝트의 위치 설정
		flow.setAlignment(Pos.CENTER);
		//add를 사용하여 setConstraints같은 효과를 낼 수 있다.
		//grid.add(flow, x축, y축, 가로병합, 세로병합)
		//2라는 건 x축에 0과1를 병합한다는 뜻임.
		grid.add(flow, 0, 2, 2, 1);

		Scene scene = new Scene(grid, 300, 200);
		primaryStage.setTitle("GridPaneEx2");
		primaryStage.setScene(scene);
		primaryStage.show();
	}
}

결과를 확인해보자.

 

 

3. 결론

 

이번 GUI는 좀 더 신경 쓸 것이 많아보인다.

그래서 좀 더 원리를 알아보고 공부한 내용을 상세하게 정리하는게 많아지는 거 같다.

그래서 정리한 내용이 중구난방되는 거 같은 느낌적인 느낌...

 

근데 어쩌겠느냐....

JavaFX를 사용할지 안할지 모르겠으나 '내가 여기서 이것을 몰라 코드에도 주석을 남기고 블로그에도 남겼구나' 의 

흔적을 남겨놔야 서재처럼 꺼내볼 수 있을 듯 하다.