독개

Java FX

by #독개#

학원 원장님 말로는 Java를 통해서 실제 이런 UI를 구성할 일이 잘없다고한다

윈도우는 C#으로 대부분 다한다. 그래서 JavaFX를 깊이는 공부하지말고 이런게 있고 이렇게 쓸수있다 라는정도만 공부하자

UI는 C#을 더 집중해서 공부하자

JavaFX 설치 및 셋팅

1. Help -> Install new software -> --All available sites-- (Add 좌측 메뉴활성화) --> e(fx)검색 해서 e(fx)clipse 설치

2. Scene Builder 검색해서 다운(자바 버전에 따라 학원에선8.0버전) 받아 설치 (경로는 Eclipse폴더 안에하는게 편함)

3. Window -> Preferences -> JavaFx -> SceneBuilder executable에 SceneBuilder.exe경로 지정해줄것

   (이거해둬야 이클립스에서 fxml파일에 우측마우스 클릭하면 open scenbuilder뜬다)

4. File -> new -> Other -> JavaFX -> JavaFX Project

5. File -> new -> Other -> JavaFX -> New FXML Document (SceneBuilder파일)


그냥 요새는 JavaFX 쓴다. (현업에 가려면 유지보수때매 Swing도 조금 쓸줄알아야겠지 응난 해당x)


Stage(윈도우창 이라보면됨)

근데이건 JavaFX 프로젝트만들면 알아서 생성됨 //이해는 하자


JavaFX Life Cycle

 


 


JavaFX에서는 UI관련은 Application Thread안에서만 정의해야한다.

init() (JavaFX Launcher Thread)에서 UI관련을 명령하면 에러뜬다! (init()의 용도는 주로 아래에 실행 매개값 얻기로 쓰인다.)

일반적으로 start() 메소드만 정의해서 쓰나, 나머지도 개발할때 필요할때 쓸수 있으면좋다.



자바는 실행할때 명령프롬프트에

"java 파일명" 이렇게 실행을하는데  JavaFX에서는 init()메소드에 정의를해서 실행할때 매개변수를 얻어 올수있다.

Map<String, String> map = params.getNamed(); 를 많이쓴다. 이건 해쉬맵형식임 key값으로 사용가능

ex)  --ip:192.168.0.5  --port:5000

 KEY

값 

ip

192.168.0.5

port 

5000 


 콘솔에 : java AppMain --ip=192.168.10.5 --port=50001




우리는 FXML을 쓴다. (신빌더가 알아서해줌)


FXML로 레이아웃만든거 불러오는방법



Stage & Scene


여백(마진,패딩)

  • 마진 (바깥여백)
  • 패딩(안쪽여백)



컨테이너



HBox & VBox 컨테이너

버튼이나, 크기들의 최대크기에 맞춰서 나중에 컨테이너 사이즈 자동조절이 가능함

컨테이너 구성예시

 

VBox(초록부분),HBox(파란부분)


 


 



FlowPane컨테이너

예시)

 


 


 



GridPane 컨테이너

엑셀에 셀,표처럼 나눠가지고 딱딱 가능 우리 학원에서 계산기만들때 썻엇음


StackPane 컨테이너

포토샵에 레이어 처럼 배경위에 버튼넣고 이런거가능하네

예시)


JavaFX 이벤트처리


FXML과 Controller 분리

FXML파일당 별도의 컨트롤러(Controller)를 지정해서 이벤트를 처리

->FXML 레이아웃과 이벤트 처리 코드를 완전히 분리

신빌더 FXML에서 쓸 컨트롤러 위치지정


 

 


 


Controller에서 메소드지정

 


 

신빌더에서 Code에서 사용할 메소드 지정



다양한 Controller

버튼,텍스트필드,라벨,콤보박스,체크박스 등등등

많은 이용들이있다. 이것들은 나중에 진짜 필요에 의해서 신빌더로 UI를 만들때 그때 찾아보고 공부하자



자세한 사용법은 이것이자바다 JavaFX다이얼로그 강의를 다시보면된다.

자세한 사용법 코드는 따로 안다룸. 아~ 이런게 있구나 라고 만 알고 필요할때 공부해서 쓰자


FileChooser

  • 파일 경로를 가져올수 있는 윈도우창
  • 필터를 내가 직접 지정해줄수 있구나, 아 이래서 분석기실행 누르고나서 확장자 선택에 Dat파일밖에 안나왔던 거군!!
  • File selectedFile = filechooser.showSaveDialog(primaryStage);   //열기가아니라 저장으로 나온다.


DiretoryChooser


  • 디렉토리 경로 가져올수 있는 윈도우창


Popup

툴팁

메시지 통지 

롭 다운 박스 

 

 

 

 마우스 갖다 댔을때 나오는 설명

 카톡오면 카톡왔다고 뜨는 그런거

 마우스 우측 클릭했을때 뜨는 메뉴들


커스텀 다이얼로그

  • 진짜 내마음대로 꾸미는 다이얼로그 복잡할듯


CSS

  • 말그대로 내마음대로 UI를 이쁘게 꾸민다고 보면될거 같다

이렇게도 가능하다만... ㅋㅋㅋ


'🔥 프로그래밍 학습 > JAVA' 카테고리의 다른 글

람다식  (0) 2020.06.12
arp spoofing만드는중  (0) 2020.06.08
JnetPcap 디바이스검색/패킷캡처/패킷전송  (0) 2020.06.08
네트워킹  (0) 2020.06.04
포트스캐너  (0) 2020.06.03

블로그의 정보

독한 개발자

#독개#

활동하기