GUI( JavaFX Scene Builder )/Layout
GUI (1)
by pms93
2022. 8. 11.
package application;
import java.awt.Dimension;
import java.awt.Toolkit;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
// 다운로드 받은 javafx를 사용하기 위해선 Application을 상속받아야 한다.
public class Gui1 extends Application {
public static void main(String[] args) {
// Application class의 launch 메서드 실행
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// Label
// - 기본생성자 혹은 .setText()를 통해 데이터를 세팅할 수 있다.
Label labelA = new Label("Hello");
Label labelB = new Label();
labelB.setText("World");
// label에 세팅된 데이터의 폰트 크기를 설정한다.
// 인자값은 double로 입력하길 도움말을 주고 있으나 정수의 값도 가능하다.
labelA.setFont(new Font(20));
labelB.setFont(new Font(35));
// Layout(BorderPane -> container)
// - Layout이란 JavaCode로 UI컨트롤을 배치하는것을 의미
// - container란 Layout의 일종이며 UI컨트롤을 쉽게 배치하게 해주는 class
// - Pane으로 끝나는 class는 layout의 container에 속한다.
// - BorderPane은 container의 한 종류, 컨트롤을 상화좌우에 배치할 수 있다.
BorderPane bp = new BorderPane();
// labalA의 text를 상단에 배치
bp.setTop(labelA);
// labelB의 text를 하단에 배치
bp.setBottom(labelB);
// 프로그램의 제목을 설정한다.
primaryStage.setTitle("test");
// 하나의 Scene을 인스턴스 하여 container와 GUI창의 width(넓이), height(높이)를 설정한다.
primaryStage.setScene(new Scene(bp, 400, 400));
// GUI 창을 띄워주는 method. 없으면 정상 실행은 되나 창이 뜨지 않는다.
primaryStage.show();
// java.awt의 toolkit과 dimension을 import 하여 screensize를 얻을 수 있다.
// getDefaultToolkit은 static method이며 인스턴스 하지 않고 바로 사용이 가능하다.
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
System.out.println("넓이 : " + screenSize.width);
System.out.println("높이 : " + screenSize.height);
}
}