JAVA fx - JAVA fx 컨테이너 - FlowPane(2022-08-11)

2022. 8. 11. 20:263층 1구역 - 개발의 장/JAVAfx - GUI

 

 

FlowPaneEx1.java

 

package layouts;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class FlowPaneEx1 extends Application{

	public static void main(String[] args) {
		launch(args);

	}

	@Override
	public void start(Stage primaryStage) throws Exception {
		Button button1 = new Button("버튼1");
		Button button2 = new Button("버튼2");
		Button button3 = new Button("버튼3");
		Button button4 = new Button("버튼4");
		Button button5 = new Button("버튼5");
		Button button6 = new Button("버튼6");
		
		FlowPane flow = new FlowPane();
		flow.getChildren().add(button1);
		flow.getChildren().addAll(button2, button3, button4, button5);
		flow.getChildren().add(button6);
		
		
		primaryStage.setScene(new Scene(flow, 150, 100));
		primaryStage.setTitle("Button Test");
		primaryStage.show();
	}

}

 

FlowPaneEx2.java

 

package layouts;

import java.util.ArrayList;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class FlowPaneEx2 extends Application {

	public static void main(String[] args) {
		launch(args);

	}

	@Override
	public void start(Stage primaryStage) throws Exception {

		FlowPane flow = new FlowPane();

		// 참조변수(button)에 담기는 것들은 주소값이므로
		// ArrayList를 사용하여 객체를 담을 수 있다.
		ArrayList<Button> buttons = new ArrayList<>();

		for (int i = 0; i < 15; i++) {
			buttons.add(new Button("버튼" + (i+1)));

			flow.getChildren().add(buttons.get(i));
		}
		flow.setHgap(10); //수평
		flow.setVgap(10); //수직
		primaryStage.setScene(new Scene(flow, 250, 200));
		primaryStage.setTitle("Button Test");
		primaryStage.show();
	}

}

 GUI는 사진으로 표현하는게 제한된다.

코드를 직접 가져가서 실험해보는 것이 어떻게 작동되는지 이해하는데에 도움이 될 듯하다.