JavaCode(review)

java fx - other layouts

◀ ▷ ▶ ♤ ♠ ♡ ♥ ♧ ♣ ⊙e 2020. 7. 22. 04:11
반응형

-Flow pane layout : window사이즈 작을시 부족하다고 내용 짤리지 않음. 다 내보냄.

                          wraps its children // when use? 얼마나 많은 children wrap 할지 모를때 씀.

-Vbox layout/ Hbox layout : window 사이즈 작으면 걍 내용 cut off (......child)

-Tile pane layout : same width (every cell), there are gap between every button, button의 글씨 가운데 정렬 

                         내용 안짤림.

-Stack pane layout : 가운데 덮어씌어지며......(포토샵 이미지 같은거처럼 쓰일때 쓴다 생각)

 

간단 표 참고하면 좋을 듯.

https://m.blog.naver.com/PostView.nhn?blogId=rain483&logNo=220607863649&proxyReferer=https:%2F%2Fwww.google.co.kr%2F

 

-Flow pane layout : window사이즈 작아도 내용 짤리지 않음. 다 내보냄.

(orientation= HORIZONTAL 인경우 + button 추가) 

코드

<?import javafx.scene.layout.FlowPane?>
<?import javafx.scene.control.Button?>
<FlowPane fx:controller = "sample.Controller"
          xmlns:fx="http://javafx.com/fxml" orientation="HORIZONTAL">
    <Button text = "Button One"/>
    <Button text = "Button Two"/>
    <Button text = "Button Three"/>
    <Button text = "Button Four"/>
    <Button text = "Button Five"/>
    <Button text = "Button Six"/>
    <Button text = "Button Seven"/>

</FlowPane>

 

-Flow pane layout

(orientation= VERTICAL 인경우 + button 추가)

-Vbox layout 인경우 - window사이즈 작으면 내용 짤림.

코드

<?import javafx.scene.layout.FlowPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.VBox?>
<VBox fx:controller = "sample.Controller"
      xmlns:fx="http://javafx.com/fxml" >
    <Button text = "Button One"/>
    <Button text = "Button Two"/>
    <Button text = "Button Three"/>
    <Button text = "Button Four"/>
    <Button text = "Button Five"/>
    <Button text = "Button Six"/>
    <Button text = "Button Seven"/>
</VBox>

 

-Tile pane layout : same width (every cell), there are gap between every button, button의 글씨 가운데 정렬 

코드

<?import javafx.scene.layout.FlowPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.layout.TilePane?>
<TilePane fx:controller = "sample.Controller"
          xmlns:fx="http://javafx.com/fxml" >
    <Button text = "Button One"/>
    <Button text = "Button Two"/>
    <Button text = "Button Three"/>
    <Button text = "Button Four"/>
    <Button text = "Button Five"/>
    <Button text = "Button Six"/>
    <Button text = "Button Seven"/>
</TilePane>

 

-Stack pane layout : 가운데 덮어씌어지며......(포토샵 이미지 같은거처럼 쓰일때 쓴다 생각)

(배경색 추가 style=-fx-background-color : 색)

코드

<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<StackPane fx:controller="sample.Controller"
           xmlns:fx="http://javafx.com/fxml">
    <Label text="The label text" style="-fx-background-color:green"/>
    <Button text="Button One" style="-fx-background-color: red"/>
    <Label text="The second label text" style="-fx-background-color:blue"/>
</StackPane>

=========================================

Main

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 500, 275));
        primaryStage.show();
    }


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