JavaFX-레이아웃 창 (컨테이너)
장면에 필요한 모든 노드를 구성한 후 일반적으로 순서대로 정렬합니다.
컨테이너 내 구성 요소의 이러한 배열을 컨테이너의 레이아웃이라고합니다. 컨테이너 내의 특정 위치에 모든 구성 요소를 배치하는 것을 포함하므로 레이아웃을 따랐다 고 말할 수도 있습니다.
JavaFX는 다음과 같은 몇 가지 미리 정의 된 레이아웃을 제공합니다. HBox, VBox, Border Pane, Stack Pane, Text Flow, Anchor Pane, Title Pane, Grid Pane, Flow Panel등
위에서 언급 한 각 레이아웃은 클래스로 표시되며 이러한 모든 클래스는 패키지에 속합니다. javafx.layout. 명명 된 클래스Pane JavaFX의 모든 레이아웃의 기본 클래스입니다.
레이아웃 생성
레이아웃을 생성하려면 다음을 수행해야합니다.
- 노드를 만듭니다.
- 필요한 레이아웃의 각 클래스를 인스턴스화합니다.
- 레이아웃의 속성을 설정합니다.
- 생성 된 모든 노드를 레이아웃에 추가합니다.
노드 생성
우선, 각각의 클래스를 인스턴스화하여 JavaFX 응용 프로그램의 필수 노드를 만듭니다.
예를 들어, 텍스트 필드와 두 개의 버튼 즉, HBox 레이아웃에서 재생하고 중지하려면 다음 코드 블록에 표시된대로 해당 노드를 먼저 만들어야합니다.
//Creating a text field
TextField textField = new TextField();
//Creating the play button
Button playButton = new Button("Play");
//Creating the stop button
Button stopButton = new Button("stop");
각 클래스 인스턴스화
노드를 생성하고 모든 작업을 완료 한 후 필요한 레이아웃의 클래스를 인스턴스화합니다.
예를 들어 Hbox 레이아웃을 생성하려면 다음과 같이이 클래스를 인스턴스화해야합니다.
HBox hbox = new HBox();
레이아웃 속성 설정
클래스를 인스턴스화 한 후 각각의 setter 메서드를 사용하여 레이아웃의 속성을 설정해야합니다.
예를 들면-HBox 레이아웃에서 생성 된 노드 사이에 공간을 설정하려면 spacing이라는 속성에 값을 설정해야합니다. 이것은 setter 메서드를 사용하여 수행 할 수 있습니다.setSpacing() 아래와 같이-
hbox.setSpacing(10);
그룹에 모양 개체 추가
마지막으로 아래와 같이 생성자의 매개 변수로 전달하여 모양의 객체를 그룹에 추가해야합니다.
//Creating a Group object
Group root = new Group(line);
레이아웃 창
다음은 JavaFX에서 제공하는 다양한 레이아웃 창 (클래스)입니다. 이러한 클래스는 패키지에 있습니다.javafx.scene.layout.
S. 아니 | 모양 및 설명 |
---|---|
1 | HBox
HBox 레이아웃은 애플리케이션의 모든 노드를 단일 가로 행으로 정렬합니다. 명명 된 클래스 HBox 패키지의 javafx.scene.layout 텍스트 가로 상자 레이아웃을 나타냅니다. |
2 | VBox
VBox 레이아웃은 애플리케이션의 모든 노드를 단일 수직 열에 정렬합니다. 명명 된 클래스 VBox 패키지의 javafx.scene.layout 텍스트 세로 상자 레이아웃을 나타냅니다. |
삼 | BorderPane
Border Pane 레이아웃은 애플리케이션의 노드를 위쪽, 왼쪽, 오른쪽, 아래쪽 및 가운데 위치에 정렬합니다. 명명 된 클래스 BorderPane 패키지의 javafx.scene.layout 테두리 창 레이아웃을 나타냅니다. |
4 | StackPane
스택 창 레이아웃은 스택에서와 마찬가지로 애플리케이션의 노드를 다른 노드 위에 정렬합니다. 먼저 추가 된 노드는 스택의 맨 아래에 배치되고 다음 노드는 그 위에 배치됩니다. 명명 된 클래스 StackPane 패키지의 javafx.scene.layout 스택 창 레이아웃을 나타냅니다. |
5 | TextFlow
텍스트 흐름 레이아웃은 단일 흐름에서 여러 텍스트 노드를 정렬합니다. 명명 된 클래스 TextFlow 패키지의 javafx.scene.layout 텍스트 흐름 레이아웃을 나타냅니다. |
6 | AnchorPane
앵커 창 레이아웃은 창에서 특정 거리에 애플리케이션의 노드를 고정합니다. 명명 된 클래스 AnchorPane 패키지의 javafx.scene.layout 앵커 창 레이아웃을 나타냅니다. |
7 | TilePane
Tile Pane 레이아웃은 균일 한 크기의 타일 형태로 애플리케이션의 모든 노드를 추가합니다. 명명 된 클래스 TilePane 패키지의 javafx.scene.layout TilePane 레이아웃을 나타냅니다. |
8 | GridPane
Grid Pane 레이아웃은 애플리케이션의 노드를 행과 열의 그리드로 정렬합니다. 이 레이아웃은 JavaFX를 사용하여 양식을 만드는 동안 편리합니다. 명명 된 클래스 GridPane 패키지의 javafx.scene.layout GridPane 레이아웃을 나타냅니다. |
9 | FlowPane
흐름 패널 레이아웃은 흐름의 모든 노드를 래핑합니다. 수평 흐름 창은 창의 요소를 높이로 감싸고 수직 흐름 창은 요소를 너비로 감 쌉니다. 명명 된 클래스 FlowPane 패키지의 javafx.scene.layout 흐름 창 레이아웃을 나타냅니다. |