발표1

DATABACE/MYSQL 2018. 2. 19. 01:00 |

chapter17. javaFX.

// 애플케이션을 개발하기 위한 그래픽과 미디어 패키지를 말한다


17.1 java FX 개요

* 자바 UI 변천사




// JavaFX 애플리케이션에서 UI생성, 이벤트 처리, 멀티미디어 재생, 웹 뷰 등과 같은 기능은 JavaFX API로 개발하고 그 외의 기능은 자바 표준 API를 활용해서 개발할 수 있다



17.2 JavaFX 애플리케이션 개발 시작

// JavaFX 애플리케이션을 개발하려면 제일 먼저 메인 클래스를 작성해야 한다.

// 메인 클래스는 JavaFX 애플리케이션을 시작하는 관문이다


17.2.1 메인 클래스

// JavaFX 애플리케이션을 시작시키는 메인 클래스는 Application을 상속받고

// Application에 있는 start() 메소드를 재정의를 해야한다

// start() 메소드는 UI(User Interface : 사람과 사물간의 상호작용)를 생성하고 윈도우를 생성하는 메소드이다


// start() 메소드는 코드에서 직접 호출할 수는 없고, 메인클래스에서 Application이 가지고 있는 메소드인 launch를 호출함으로써, 내부적으로 start() 메소드를 호출하게 해야한다


// JavaFX는 window를 Stage라는 용어로 사용한다 

// 매개변수 값으로 제공되는 primaryStage를 show함으로써 윈도우를 보여준다


New > order 






17.2.4 무대(Stage)와 장면(Scene)


17.3 java FX 레이아웃

- Scene에는 다양한 컨트롤이 포함되는데 이를 배치하는 것이 레이아웃이다.


// 레이아웃을 작성하는 방법은 두 가지가 있다.

// 하나는 자바 코드로 작성하는 프로그램적 레이아웃이고,

// 다른 하나는 FXML로 작성하는 선언적 레이아웃이다.


17.3.1 프로그램적 레이아웃

- 자바 코드로 UI 컨트롤을 배치하는 것을 말한다

- 자바 코드로만 개발하기 때문에 다른 언어를 익힐 필요가 없다

- 코드를 잘 정리 하지 않으면 난해한 프로그램이 될 확률이 높아진다

- 디자이너와 협력해서 개발하는 것이 어렵다

- 간단한 레이아웃 변경이나 스타일 변경이라도 자바 소스를 수정하고 재 컴파일해야 한다


17.3.2 FXML 레이아웃

- FXML은 XML 기반의 마크업 언어이다.

- JavaFX UI 레이아웃을 자바 코드에서 분리해서 태그로 선언하는 방법을 제공한다.

- 웹 애플리케이션 및 안드로이드(Android) 앱을 개발하는 방법과 유사하다

- 디자이너와 협업이 가능한다

- 간단한 레이아웃 변경이나 스타일 변경시 자바 소스를 수정할 필요가 없다. FXML 태그만 수정하면 된다

- 레이아웃이 비슷한 장면(Scene)들간에 재사용이 가능하다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package sec03.exam01_programmatical_layout;
 
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.layout.HBox;
import javafx.geometry.Insets;
import javafx.scene.control.TextField;
import javafx.scene.control.Button;
import javafx.scene.Scene;
import javafx.collections.ObservableList;
 
public class AppMain extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        HBox hbox = new HBox();//HBox 컨테이너 생성
        hbox.setPadding(new Insets(10,10,10,10));//안쪽 여백 설정
        hbox.setSpacing(10);//컨트롤간의 수평 간격 설정
        
        TextField textField = new TextField();//TextField 컨트롤 생성
        textField.setPrefWidth(200);//TextField의 폭 설정
        
        Button button = new Button();//Button 컨트롤 생성
        button.setText("확인");//Button 글자 설정
        
        ObservableList list = hbox.getChildren();//HBox의 ObservableList 얻기
        list.add(textField);//TextField 컨트롤 배치
        list.add(button);  //Button의 컨트롤 배치
        
        Scene scene = new Scene(hbox);//화면의 루트 컨테이너로 HBox 지정
        
        primaryStage.setTitle("AppMain");//윈도우 창 제목 설정
        primaryStage.setScene(scene);//윈도우 창에 화면 설정
        primaryStage.show();//윈도우 창 보여주기
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}
cs




 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package sec03.exam02_fxml_layout;
 
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
 
public class AppMain extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("root.fxml"));
        Scene scene = new Scene(root);
        
        primaryStage.setTitle("AppMain");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
 
<?import javafx.scene.layout.HBox?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.*?>
 
<HBox xmlns:fx="http://javafx.com/fxml" ><!-- HBox 컨테이너 선언 -->
    <padding><!-- 안쪽 여백 설정 -->
        <Insets top="10" right="10" bottom="10" left="10"/>
    </padding>
    <spacing>10</spacing><!-- 컨트롤간의 수평 간격 설정 -->
    
    <children><!-- 자식 컨트롤 추가 -->
        <TextField><!-- TextField 선언 -->
            <prefWidth>200</prefWidth><!-- TextField의 폭 설정 -->
        </TextField>
        
        <Button ><!-- Button 컨트롤 선언 -->
            <text>확인</text><!-- Button 글자 설정 -->
        </Button>
    </children>
</HBox>
cs




17.3.4 FXML 작성 규칙
// FXML로 선언된 태그는 자바 코드로 변환되어 실행된다
// 이것만 잘 이해 하면 JavaFx API 도규먼트를 참조해서 FXML태그를 쉽게 작성할수 있다.


17.4 JavaFX 컨테이너


http://kkk-kkk.tistory.com/317


17.3.6 JavaFX Scene Builder 

// 자바 코드에 익숙한 개발자들은 자바 코드와 분리된 FXML 파일을 별도로 생성해서 작성해야 하므로 처음에는 불편함을 느낀다

// 오라클은 FXML에 익숙하지 않은 개발자들을 위해 FXML을 자동으로 생성해주는 JavaFX Scene Builder를 제공하고 있따.

'DATABACE > MYSQL' 카테고리의 다른 글

MYSQL 단축키  (0) 2018.02.27
발표2  (0) 2018.02.19
Java MySQL 연결을 위한 MySQL Connector 설치방법  (0) 2018.02.18
자바 MySQL SQL문 코딩 방법  (0) 2018.02.18
MySQL 처리과정을 클래스(class)로 만드는 법  (0) 2018.02.18
Posted by 너래쟁이
: