11.03 <자바FX>
오늘은 자바 FX에 대한 기본 개념과 네트워크에 대해서 배워보았다.
자바 FX에 대한 기본 개념
JavaFX에서는 기본 틀이 있다.
JavaFX를 사용해주기 위해 먼저 application을 extends시켜주고,
main 함수에서 launch();를 해줘야 한다 .
launch를 해주게 되면 미구현 메소드 start를 만들라는 에러가 뜨는데, 자동 수정 해주면 public void start(Stage arg0)이라는 메소드가 생성된다!
start메소드 안에 기본 3가지 영역이 있다 .
난 그것을 맨 윗 영역, 중간 영역, 맨 아래 영역으로 나누겠다.
1. 맨 위 영역에서는VBox 객체를 생성해주어야 한다.
그래야 자바 파일을 실행했을 때, fx의 기능으로 하나의 창이 뜨게 된다.
이후 창의 사이즈도 설정해줄 수 있다.
VBox root = new VBox(); //vertical 세로배열, root를 이용해 세로길이 가로길이 설정가능
root.setPrefSize(800, 600); //이렇게 한다고 바로 적용되지는 않는다.
2. 중간 영역에서는 창에 뜨는 요소들을 추가해주면 된다.
나의 경우에서는 버튼을 추가해주었다.
버튼을 추가하면서, 버튼의 이름 설정과 버튼을 클릭하게 되면 발생하는 이벤트도 추가해줄 수 있다.
setOnAction이 바로 이벤트 실행하게 하는 코드이고, 그 뒤에 new를 하고 자동완성 단축키를 입력하면 EventHandler코드가 형식대로 자동 완성 입력된다.
btn01.setOnAction(new
EventHandler<ActionEvent>()
그러고 public void handle(ActionEvent arg0) { 이 함수가 내부에 또 생성이 되는 데, 이 안에 이벤트 발생시 나타났으면 하는 코드를 입력해주면 된다. 아래의 코드는 버튼 1을 클릭시 콘솔창에 "클릭하였습니다"가 뜨도록 하였다.
@Override
public void handle(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("클릭하였습니다.");
중간영역의 맨 아랫부분에는 내가 추가 했던 요소들이 root(VBox)에 뜨게끔 하도록 아래와 같이 설정해주면 된다.
root.getChildren().add(btn01); // 버튼 1개의 경우
또는
root.getChildren().addAll(btn01,btn02,btn03); // 버튼 여러개의 경우
3. 맨 아래 영역에는 Scene 설정만 해주면 된다. (전체 창이 실행 됨)
4줄만 입력해주면 arg0이 실행 된다.
Scene scene = new Scene(root);
arg0.setScene(scene);
arg0.setTitle("안녕하세요 ");
arg0.show();
전체 코드
public class Hello extends Application{
@Override
public void start(Stage arg0) throws Exception {
VBox root = new VBox(); //vertical 세로배열, root를 이용해 세로길이 가로길이 설정가능
root.setPrefSize(800, 600); //이렇게 한다고 바로 적용되지는 않는다.
//---------------------------------------------이 위에는 보통 고정되는 값들을 주로설정
//1번방법
// Button btn01 = new Button("버튼1"); //버튼의 연결고리를 잡아줘야함, 최소한 root 정도
// root.getChildren().add(btn01); //code의 체이닝, 체이닝할 경우 중간 난입이 안된다는 특징이 있다!
// Button btn02 = new Button("버튼2");
// root.getChildren().add(btn02);
// 2번방법
Button btn01 = new Button("버튼1");
btn01.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("클릭하였습니다.");
}
});
Button btn02 = new Button("버튼2");
btn02.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("클릭하였습니다.");
}
});
root.getChildren().addAll(btn01,btn02);
//----------------------------------------------------------
Scene scene = new Scene(root);
arg0.setScene(scene);
arg0.setTitle("안녕하세요 ");
arg0.show();
}
public static void main(String[] args) {
System.out.println("start");
launch(); // 부모의 launch함수가 start를 호출
}
}
이어서 네트워크에 대해 배운 내용을 정리해 보겠다.