제가 기억력이 좋지 않기 때문에, 제가 기억하려고 쓰는 포스팅입니다.
돌아서면 까먹고,,, 까먹고,,,;;; 사각형을 만드는 법과 좌표 설정하는 법을 간단하게 써놓겠습니다.
저는 쉽게 메인에서 제작해보도록 하겠습니다.
New -> project -> javafx project -> 프로젝트 생성
프로젝트 이름은 Box로 설정해줬습니다.
기본으로 세팅되어 있는 Main.java 클래스에서 실습해보도록 하겠습니다.
우선 아무것도 하지않은 Main을 F11을 눌러 실행시켜줍니다.
이렇게 아무것도 없는 빈 윈도우 창이 나타납니다.
우리는 여기에 사각형을 만들겁니다.
JavaFx 사각형 만들기
javafx는 사각형을 만들 수 있는 Rectangle 라이브러리를 제공합니다.
Rectangle 객체명 = new Rectangle();
Rectangle 클래스를 import 해줍시다.
ctrl + shift + o 를 누릅니다.
javafx 라고 써져있는 걸 선택합니다.
생성한 사각형 객체를 root 에 넣어줍니다.
아래 scene 객체 안에 root가 들어가는 걸 볼 수 있는데,
root.getChildren().add() 를 사용합니다.
이 root의 자식들을 가져와서 그 자식들 중 하나를 더 추가한다는 소리입니다.
root.getChildren().addAll() 도 있는데 얘는 여러개를 추가할 때 사용합니다.
이걸 출력해보면,
넹. 아무것도 안나타납니다.
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
사각형 크기를 넘겨주지 않아서 그렇습니다.
Rectangle 클래스는 객체를 생성할 때 가로와 세로의 사이즈를 넘겨주는데,
아무것도 넘겨주지 않아 사각형이 생성되지 않은겁니다.
저는 가로 25픽셀 세로 25픽셀 해주겠습니다.
이제 실행시켜봅시다.
네. 이렇게 검정색 사각형이 나타납니다.
아직 색을 선택해주지 않았기 때문에 디폴트로 검정색이 나왔네요.
조금 더 재밌게 색을 넣어줘보겠습니다.
JavaFx 사각형 색상 추가
setFill은 주로 색상을 선택해줄 때 사용합니다.
Color 를 사용하면 . 을 찍자마자 밑에 사용할 수 있는 색상들이 쭈욱 나열됩니다.
저는 이 색을 고를 때가 제일 재밌더라고요.
출력물 확인해보도록 하겠습니다.
예쁜 코랄색이 되었네요.
사각형에 테두리도 줘볼까요?
JavaFx 사각형 테두리 추가
setStrokeWidth 를 사용해서 2픽셀짜리 검정색 테두리를 생성해보았습니다.
출력해볼까요?
JavaFx 사각형 좌표 설정
이제 저 box의 위치를 옮겨봅시다.
우선, 좌측에 있는 최상단의 좌표가 (0,0) 이라는 것을 알고 계셔야합니다.
(0,0) 을 기준으로 우측으로 가면 x 좌표가 증가합니다.
아래쪽으로 가면 y 좌표가 증가합니다.
이제 직접 box의 좌표를 설정해보겠습니다.
좌표 설정은 setX(); setY(); 를 사용합니다.
정말 직관적이죠? setX() 는 x 좌표를, setY() 는 y 좌표를 설정합니다.
이제 이걸로 L 모양 블록을 생성해보도록 하겠습니다.
우선 사각형을 4개를 만들고, 쉽게 분류할 수 있도록 색상을 다르게 설정해준뒤
좌표를 건드려볼게요.
저는 이렇게 진행했습니다.
전체 코드는 이렇습니다.
package application;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
//사각형 객체 생성
Rectangle box1 = new Rectangle(25,25);
Rectangle box2 = new Rectangle(25,25);
Rectangle box3 = new Rectangle(25,25);
Rectangle box4 = new Rectangle(25,25);
//사각형 색상 변경
box1.setFill(Color.CORAL);
box2.setFill(Color.BLUE);
box3.setFill(Color.GREEN);
box4.setFill(Color.YELLOW);
//사각형 테두리 생성
box1.setStrokeWidth(1);
box1.setStroke(Color.BLACK);
box2.setStrokeWidth(1);
box2.setStroke(Color.BLACK);
box3.setStrokeWidth(1);
box3.setStroke(Color.BLACK);
box4.setStrokeWidth(1);
box4.setStroke(Color.BLACK);
//사각형 좌표 설정
box1.setX(200);
box1.setY(100);
box2.setX(200);
box2.setY(125);
box3.setX(200);
box3.setY(150);
box4.setX(175);
box4.setY(150);
BorderPane root = new BorderPane();
//BorderPane 객체에 사각형 객체 추가
root.getChildren().addAll(box1,box2,box3,box4);
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
이렇게 포스팅을 마치겠습니다.
JavaFx 카테고리를 새로 팔까봐요.
앞으로 만드는 툴같은 것도 JavaFx를 사용해서 그래픽요소도 추가할 예정입니다.
다음 포스팅은 JavaFx 선 생성으로 찾아오겠습니다.
그 전까지 JavaFx 공부 열심히!
'Archive > Develop' 카테고리의 다른 글
[ JSP ] Web Programming 이란? | JSP 동작 원리 (0) | 2020.05.05 |
---|---|
[ JAVA ] 자바 프로젝트 CMD 창에서 실행 시키기. (0) | 2020.04.10 |
[ JAVAFx ] JavaFx 소개 및 설치 (0) | 2020.03.20 |
[ JAVA ] 002 - "Hello, world" 를 출력해보자! (0) | 2020.03.16 |
chrome 개발자 도구를 이용해 티스토리 블로그 스킨편집을 해보자! (1) | 2020.03.11 |