맨위로가기

자바FX

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

JavaFX는 사용자 인터페이스(UI)를 구축하기 위한 자바 기반의 소프트웨어 플랫폼이다. 2008년 JavaFX 1 출시 이후, 2011년 JavaFX 2.0부터는 "일반적인" Java API를 사용하여 Java 코드로 개발하는 방식으로 전환되었다. JavaFX는 데스크톱, iOS, Android 등 다양한 플랫폼을 지원하며, 풍부한 UI 컨트롤, CSS 스타일 지정, 애니메이션, 미디어 재생 등의 기능을 제공한다. Java 8부터 JDK에 포함되었으나, JDK 11부터는 분리되어 OpenJFX 프로젝트를 통해 관리된다.

더 읽어볼만한 페이지

  • 리치 인터넷 애플리케이션 프레임워크 - 마이크로소프트 실버라이트
    마이크로소프트 실버라이트는 2007년에 출시되어 어도비 플래시에 대항하고자 개발된 마이크로소프트의 RIA 기술이며, 닷넷 프레임워크 기반으로 XAML을 사용해 사용자 인터페이스를 정의했으나 2021년에 지원이 종료되었다.
  • 리치 인터넷 애플리케이션 프레임워크 - 구글 웹 툴킷
    구글 웹 툴킷(GWT)은 자바 코드를 자바스크립트로 변환하여 웹 애플리케이션 개발을 지원하는 도구로, 개발자가 자바 언어로 Ajax 애플리케이션을 개발하고 GWT 컴파일러를 통해 최적화된 자바스크립트 파일로 변환할 수 있게 한다.
  • 자바 (프로그래밍 언어) - 자바 애플릿
    자바 애플릿은 웹 페이지에서 실행되는 자바 기반 프로그램으로, 웹 상호작용성을 높였으나 기술적 문제와 웹 표준 기술 발전에 따라 쇠퇴하여 사용이 중단되었다.
  • 자바 (프로그래밍 언어) - 네임 맹글링
    네임 맹글링은 함수 오버로딩을 지원하는 언어에서 이름 충돌을 막기 위해 컴파일러가 함수나 변수 이름을 링커가 이해할 수 있는 심볼 이름으로 바꾸는 과정이며, C++, Java, Python, Fortran 등에서 다양한 방식으로 구현된다.
  • 썬 마이크로시스템즈 소프트웨어 - 자바 데스크톱 시스템
  • 썬 마이크로시스템즈 소프트웨어 - 핫자바
    핫자바는 자바 프로그래밍 언어 기반으로 개발된 웹 브라우저이며, 1995년 TED 컨퍼런스에서 처음 시연되고 SunWorld 컨퍼런스에서 공식 발표되었다.
자바FX - [IT 관련 정보]에 관한 문서
기본 정보
개발자오라클
최신 버전21.0.2
운영 체제자바
플랫폼크로스 플랫폼
언어자바
장르애플리케이션 프레임워크
라이선스GPL+클래스패스 예외
웹사이트https://wiki.openjdk.org/display/OpenJFX
https://openjfx.io

2. 역사

2008년 12월 4일, JavaFX 1이 출시되었다.[26] JavaFX 1에서는 정적 형식의 선언적 언어인 JavaFX 스크립트를 사용하여 개발하는 방식이었다. JavaFX 스크립트는 Java 바이트코드로 컴파일되므로 프로그래머는 대신 Java 코드를 사용할 수도 있었다.[25]

2011년 10월 10일, JavaFX 2.0이 출시되었다.[54] JavaFX 2.0 이후, JavaFX를 사용하는 애플리케이션은 "일반적인" Java API를 사용하여 "일반적인" Java 코드로 작성하게 되었다. JavaFX Script는 Oracle에 의해 폐지되었지만, 개발은 Visage 프로젝트에서 계속되고 있다.[54] JavaFX 2.x는 Solaris나 휴대 전화를 지원하지 않지만, Oracle은 JavaFX를 Java SE Embedded 8에 통합할 계획이며, ARM 프로세서용 JavaFX는 개발자 프리뷰 단계이다.[55]

2.0은 Windows만 지원했지만, 2.1부터 Mac OS X에, 2.2부터 Linux를 지원한다.[56] 데스크톱용으로, JavaFX는 Windows Vista, Windows 7, Windows 8, Windows 10, macOS 및 Linux를 지원한다.[57] JavaFX 1.2 이후, Oracle은 OpenSolaris용 베타 버전을 릴리스하고 있다.[58] 휴대 전화용으로, JavaFX Mobile 1.x는 여러 휴대 단말용 OS (Symbian OS, Windows Mobile, 그리고 등록 상표를 가진 실시간 운영 체제 등)에서 실행된다.

iOS 및 Android용 유료 이식판이 "Gluon"이라는 이름으로 제작되었다.[59] 이는 단일 소스 코드 베이스에서 데스크톱, iOS, Android 기기용 애플리케이션을 제작할 수 있게 해준다.

JavaFX는 Java 8(2014년 3월 18일 출시)부터 JRE/JDK의 일부가 되었으며, 버전 번호도 동일하게 맞춰 JavaFX 8이 되었다.[11] JavaFX 8에는 3D 그래픽[13][14], 센서, 인쇄 및 서식 있는 텍스트 지원[12], JOptionPane을 대체하는 일반적인 대화 상자 템플릿(JavaFX 8u40부터)[15] 등의 새로운 기능이 추가되었다.

JavaFX를 사용한 간단한 3D 장면 예시


Oracle은 JDK 11 이상부터 JavaFX를 번들로 제공하지 않겠다고 발표했다.[17] 이에 따라 JavaFX는 [https://openjfx.io/ OpenJFX]를 이용하게 되었다.

2. 1. 초기 (JavaFX 1.x)

썬 마이크로시스템즈2007년 5월 JavaOne 월드와이드 자바 개발자 컨퍼런스에서 JavaFX를 처음 발표했다.[25] 2008년 12월 4일, JavaFX 1.0.2를 출시했다.[26] JavaFX 1.x 버전에서는 JavaFX 스크립트라는 정적 형식의 선언적 언어를 사용하여 개발되었으며, Java 바이트코드로 컴파일되었다.[25]

2008년 5월 썬 마이크로시스템즈는 2008년 3분기까지 브라우저 및 데스크톱용 JavaFX를, 2009년 2분기까지 모바일 기기용 JavaFX를 제공할 계획이라고 발표했다. 또한 썬은 On2 Technologies와 다년간의 계약을 체결하여 회사의 TrueMotion 비디오 코덱을 사용하여 JavaFX 제품군에 포괄적인 비디오 기능을 제공할 것이라고 발표했다.

JavaFX 1.2(Marina[26]로 명명)는 2009년 6월 2일 JavaOne에서 출시되었는데, 리눅스 및 솔라리스에 대한 베타 지원, 내장된 GUI 위젯 및 레이아웃 관리자, 스킨 가능한 CSS 컨트롤, 내장된 차트 위젯, JavaFX I/O 관리 기능 등이 도입되었다.[27] JavaFX 1.3(Soma[26]로 명명)은 2010년 4월 22일에 출시되어 성능 향상, 추가 플랫폼 지원, 사용자 인터페이스 컨트롤에 대한 향상된 지원을 제공했다.[28]

JavaFX 2.0(Presidio[26]로 명명)은 2011년 10월 10일에 출시되었다. 이 릴리스에서는 새로운 자바 API 세트가 도입되어 JavaFX Script 지원이 중단되었고, JavaFX Mobile에 대한 지원도 중단되었다.[26] 오라클은 JavaFX를 오픈 소스로 공개하겠다고 발표했다.

2. 2. 전환기 (JavaFX 2.x)

2011년 10월 10일, JavaFX 2.0이 출시되었다.[54] JavaFX 2.0 이후, JavaFX를 사용하는 애플리케이션은 "일반적인" Java API를 사용하여 "일반적인" Java 코드로 작성하게 되었다. JavaFX Script는 오라클에 의해 폐지되었지만, 개발은 Visage 프로젝트에서 계속되고 있다.[54] JavaFX 2.x는 Solaris나 휴대 전화를 지원하지 않지만, 오라클은 JavaFX를 Java SE Embedded 8에 통합할 계획이며, ARM 프로세서용 JavaFX는 개발자 프리뷰 단계이다.[55]

2.0은 Windows만 지원했지만, 2.1부터 Mac OS X에, 2.2부터 Linux를 지원한다.[56] 데스크톱용으로, JavaFX는 Windows Vista, Windows 7, Windows 8, Windows 10, macOS 및 Linux를 지원한다.[57] JavaFX 1.2 이후, 오라클은 OpenSolaris용 베타 버전을 릴리스하고 있다.[58] 휴대 전화용으로, JavaFX Mobile 1.x는 여러 휴대 단말용 OS (Symbian OS, Windows Mobile, 그리고 등록 상표를 가진 실시간 운영 체제 등)에서 실행된다.

iOS 및 Android용 유료 이식판이 "Gluon"이라는 이름으로 제작되었다.[59] 이는 단일 소스 코드 베이스에서 데스크톱, iOS, Android 기기용 애플리케이션을 제작할 수 있게 해준다.

2. 3. 성숙기 (JavaFX 8 이후)

자바FX는 Java 8(2014년 3월 18일 출시)과 함께 제공되며, JavaFX 8로 버전 번호가 맞춰졌다.[11] JavaFX 8에는 3D 그래픽[13][14], 센서, 인쇄 및 서식 있는 텍스트 지원[12], JOptionPane을 대체하는 일반적인 대화 상자 템플릿(JavaFX 8u40부터)[15] 등의 새로운 기능이 추가되었다. JavaFX 8 업데이트 192부터는 MathML도 지원한다.

JavaFX 9에서는 모듈화를 위해 JavaFX UI 컨트롤 및 CSS API를 준비하는 등[16] API 개선에 초점을 맞췄다.

오라클은 JDK 11 이상부터 JavaFX를 번들로 제공하지 않겠다고 발표했다.[17] 이에 따라 JavaFX는 OpenJFX 프로젝트로 이관되었으며, 최신 버전의 JDK에는 포함되지 않는다. JavaFX 11은 2018년 9월에 처음 출시되었으며,[18] MathML 및 FX 로봇 API 등을 지원한다.

이후 JavaFX는 글루온에서 상용 지원을 제공하며 지속적으로 발전하고 있다.[37] JavaFX 12(2019년 3월 출시)[18], JavaFX 13(2019년 9월 출시), JavaFX 14(2020년 3월 출시), JavaFX 15(2020년 9월 출시), JavaFX 16(2021년 3월 출시), JavaFX 17(2021년 9월 출시), JavaFX 18(2022년 3월 출시), JavaFX 19(2022년 9월 출시), JavaFX 20(2023년 3월 출시) 등 새로운 버전이 꾸준히 출시되고 있다. 각 버전별 주요 기능은 다음과 같다.

  • JavaFX 12: 마우스 앞/뒤 버튼 지원, 서브클래싱을 위한 새로운 보호된 VirtualFlow 메서드[20]
  • JavaFX 13: 전자 종이 디스플레이 지원, NIO ByteBuffers로 지원되는 WritableImages를 통한 기본 미디어 렌더링 지원[21]
  • JavaFX 14: Text 및 TextFlow에 대한 탭 크기 속성, WebView에서 HTTP/2 지원[22]
  • JavaFX 15: i.MX6 장치에서 전자 종이 디스플레이 지원[23]
  • JavaFX 17: 3D SpotLight 유형, 인라인 data-URI에서 이미지 및 스타일시트 로드, 파일로 인쇄, CAPS LOCK 및 NUM LOCK 키의 상태 쿼리, 임베디드 플랫폼용 창 도구 키트에서 여러 화면 지원
  • JavaFX 18: 비디오 플레이어에서 H.265/HEVC 미디어 코덱 지원, 3D DirectionalLight 유형, WebView에서 투명한 배경, CSS에서 노드의 "관리" 속성 설정, Border 및 Background에 대한 팩토리 메서드
  • JavaFX 19: 비디오 플레이어에서 H.265/HEVC HTTP Live Streaming 지원, 람다를 사용한 유창한 바인딩: map, flatMap 및 orElse, :focus-visibile 및 :focus-within CSS 의사 클래스
  • JavaFX 20: TableView 및 TreeTableView에 대한 제약된 크기 조정 정책, UI 컨트롤 스킨의 개선된 수명 주기 (Skin::install), 리스너를 관리하는 단순화되고 결정적인 방법 (ObservableValue::when)[24]


오라클은 2025년 3월까지 Java SE 8에서 JavaFX의 새로운 수정 사항을 계속 지원할 것이라고 밝혔다.[36]

3. 특징

JavaFX 1.1은 JavaFX에서 지원하는 모든 장치에 걸쳐 사용될 수 있는 "공통 프로필" 개념을 기반으로 했다. 이러한 접근 방식을 통해 개발자는 데스크톱 및 모바일 장치 모두를 대상으로 하는 애플리케이션을 구축하고 데스크톱 및 모바일 버전 간에 코드, 그래픽 자산 및 콘텐츠의 상당 부분을 공유하면서 공통 프로그래밍 모델을 사용할 수 있었다. 특정 종류의 장치에서 애플리케이션을 조정해야 할 필요성을 해결하기 위해 JavaFX 1.1 플랫폼에는 데스크톱 또는 모바일 전용 API가 포함되어 있다. 예를 들어, JavaFX Desktop 프로필에는 Swing 및 고급 시각 효과가 포함되어 있다.

최종 사용자를 위해 "드래그-투-설치" 기능을 통해 웹사이트에 있는 애플리케이션인 JavaFX 위젯을 드래그하여 데스크톱에 놓을 수 있다. 브라우저가 닫힌 후에도 애플리케이션은 상태 또는 컨텍스트를 잃지 않는다. 또한 사용자의 데스크톱에 자동으로 생성되는 바로 가기를 클릭하여 애플리케이션을 다시 실행할 수도 있다.

이 동작은 Java 6u10 업데이트 이후 Java 애플릿 메커니즘에서 바로 사용할 수 있으며 JavaFX는 기본 Java 계층에서 이를 활용한다.

Sun은 "드래그-투-설치"가 새로운 배포 모델을 열어 개발자가 "브라우저에서 벗어날 수 있도록" 한다고 선전한다.

JavaFX 1.x에는 어도비 포토샵어도비 일러스트레이터용 플러그인이 포함되어 있어 고급 그래픽을 JavaFX 애플리케이션에 직접 통합할 수 있다. 플러그인은 그래픽의 레이어와 구조를 유지하는 JavaFX Script 코드를 생성한다. 그런 다음 개발자는 가져온 정적 그래픽에 애니메이션 또는 효과를 추가할 수 있다. 또한 JavaFX 형식으로 변환한 후 그래픽을 가져오고 자산을 미리 볼 수 있는 SVG 그래픽 변환 도구 (Media Factory라고도 함)도 있었다.[7]

JavaFX 버전 2.0 이전에는 개발자가 JavaFX Script라는 정적으로 형식이 지정된 선언적 언어를 사용하여 JavaFX 애플리케이션을 구축했다. JavaFX Script는 Java 바이트코드로 컴파일되었기 때문에 프로그래머는 Java 코드를 대신 사용할 수도 있었다. 2.0 이전의 JavaFX 애플리케이션은 현재 버전과 마찬가지로 Java SE를 실행할 수 있는 모든 데스크톱에서 실행될 수 있었다.[8]

JavaFX 2.0 이상은 Java 라이브러리로 구현되었으며 JavaFX를 사용하는 애플리케이션은 일반 Java 코드로 작성된다. 스크립팅 언어는 Oracle에서 폐기되었지만 Visage 프로젝트에서 몇 년 동안 개발이 계속되었고 결국 2013년에 종료되었다.[9][10]

Sun Microsystems는 JavaFX 기반 장치에서 사용할 맞춤형 서체인 Amble의 라이선스를 취득했다. 이 글꼴 모음은 모바일 컴퓨팅 사용자 인터페이스 디자인 전문가인 Punchcut에서 디자인했으며 JavaFX SDK 1.3 릴리스의 일부로 제공된다.

3. 1. 공통 프로필 (JavaFX 1.x)

JavaFX 1.1은 모든 장치에서 공통으로 사용될 수 있는 공통 프로파일 기반으로 설계되었다. 이를 통해 개발자는 데스크톱 및 모바일 장치용 애플리케이션을 개발할 때 동일한 프로그래밍 모델을 사용할 수 있으며, 코드, 그래픽 자산 및 콘텐츠를 공유할 수 있다.

특정 장치에 맞게 조정해야 하는 경우를 위해, JavaFX 1.1은 데스크톱 또는 모바일용으로 특화된 API를 포함하여 유연성을 제공한다. 예를 들어, JavaFX 데스크톱 프로파일에는 Swing 및 첨단 시각 효과가 포함된다.

3. 2. Java API 기반 (JavaFX 2.x 이후)

3. 3. 다양한 UI 컨트롤 및 기능

자바FX는 버튼, 텍스트 필드, 테이블, 차트 등 풍부한 UI 컨트롤 세트를 제공하며, CSS를 사용하여 UI 스타일을 지정할 수 있다. 또한 애니메이션, 효과, 미디어 재생 등 다양한 기능을 지원한다. WebView를 통해 HTML5 콘텐츠를 통합할 수 있는데, 이는 WebKit 브라우저 엔진을 사용하는 임베디드 웹 브라우저 컴포넌트이다. 캔버스, 미디어, 미터, 진행률 표시줄, 세부 정보 및 요약 태그와 같은 일반적인 HTML5 기능과 MathML, SVG, JavaScript 및 CSS를 지원한다. WebAssembly 지원은 활성화되지 않았다.

3. 4. 크로스 플랫폼 지원

자바FX는 마이크로소프트 윈도우, OS X, 리눅스에서 배포된다.[38] 오라클은 iOS 및 안드로이드에서 자바FX의 내부 포트를 가지고 있으며,[39][40] ARM 지원은 자바FX 8부터 시작되었다.[41] 2013년 2월 11일, 오라클의 클라이언트 자바 플랫폼 수석 아키텍트인 리처드 베어는 향후 2개월 내에 자바FX 플랫폼의 iOS 및 안드로이드 구현을 오픈 소스화할 것이라고 발표했다.[42][43]

ARM용 JDK 버전 8u33부터 JavaFX Embedded에 대한 지원이 제거되었다.[44] x86 기반 아키텍처에 대한 지원은 계속될 것이다.[45] 안드로이드 및 iOS용 자바FX의 상용 포트는 "Gluon"이라는 이름으로 제작되었다.[6]

4. 구성 요소

자바FX 플랫폼은 다음과 같은 구성 요소를 포함한다.


  • 자바FX SDK: 그래픽, 미디어 서비스, 서식 있는 텍스트 라이브러리, 웹 뷰 등을 포함한다.
  • 넷빈즈(NetBeans) IDE for JavaFX: 변환, 효과 및 애니메이션이 적용된 객체를 추가할 수 있는 드래그 앤 드롭 팔레트가 있는 넷빈즈, 샘플 및 모범 사례 세트가 포함되어 있다. 이클립스 사용자를 위해 e(fx)clipse에서 호스팅되는 커뮤니티 지원 플러그인이 있다.
  • 자바FX Scene Builder: 자바FX 2.1 이상에서 도입되었다. 사용자 인터페이스(UI)는 팔레트에서 컨트롤을 드래그 앤 드롭하여 생성된다. 레이아웃은 특수한 XML 형식인 FXML 파일로 저장된다.

4. 1. JavaFX SDK

자바FX 플랫폼은 다음과 같은 구성 요소를 포함한다.

  • 자바FX SDK: 그래픽, 미디어 서비스, 서식 있는 텍스트 라이브러리, 웹 뷰 등을 포함한다.
  • 넷빈즈(NetBeans) IDE for JavaFX: 변환, 효과 및 애니메이션이 적용된 객체를 추가할 수 있는 드래그 앤 드롭 팔레트가 있는 넷빈즈, 샘플 및 모범 사례 세트가 포함되어 있다. 이클립스 사용자를 위해 e(fx)clipse에서 호스팅되는 커뮤니티 지원 플러그인이 있다.
  • 자바FX Scene Builder: 자바FX 2.1 이상에서 도입되었다. 사용자 인터페이스(UI)는 팔레트에서 컨트롤을 드래그 앤 드롭하여 생성된다. 레이아웃은 특수한 XML 형식인 FXML 파일로 저장된다.

4. 2. 개발 도구

넷빈즈(NetBeans) IDE for JavaFX는 변환, 효과 및 애니메이션이 적용된 객체를 추가할 수 있는 드래그 앤 드롭 팔레트를 제공하며, 샘플 및 모범 사례 세트가 포함되어 있다. 이클립스 사용자를 위한 커뮤니티 지원 플러그인은 e(fx)clipse에서 호스팅된다.

자바FX 2.1 이상부터는 JavaFX Scene Builder를 통해 시각적으로 사용자 인터페이스(UI)를 디자인할 수 있다. UI는 팔레트에서 컨트롤을 드래그 앤 드롭하여 생성되며, 레이아웃은 특수한 XML 형식인 FXML 파일로 저장된다.

5. 예제

5. 1. Hello World 예제

다음은 버튼이 포함된 창을 표시하는 간단한 자바FX 기반 프로그램 예제이다.

자바FX의 헬로 월드 프로그램.




package javafxtuts;

import javafx.application.Application;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.layout.StackPane;

import javafx.stage.Stage;

public class Javafxtuts extends Application {

@Override

public void start(Stage primaryStage) {

// Creating the java button

Button btn = new Button();

// Setting text to button

btn.setText("Hello World");

//registering a handler for button

btn.setOnAction((ActionEvent event) -> {

// printing Hello World! to the console

System.out.println("Hello World!");

});

// Initializing the StackPane class

StackPane root = new StackPane();

// Adding all the nodes to the FlowPane

root.getChildren().add(btn);

//Creating a scene object

Scene scene = new Scene(root, 300, 250);

//Adding the title to the window (primaryStage)

primaryStage.setTitle("Hello World!");

primaryStage.setScene(scene);

// show the window(primaryStage)

primaryStage.show();

}

/**

  • @param args the command line arguments
  • /

public static void main(String[] args) {

launch(args);

}

}


6. 활용 사례

6. 1. 정부 및 공공기관

6. 2. 기업

6. 3. 교육

7. OpenJFX

선은 JavaFX 최초 릴리스에 대한 JavaFX 라이선스 모델 전략을 발표할 것이라고 설명했다.[49] 2008년 출시 이후, 선의 부사장인 지트 카울은 JavaFX 및 관련 파일 형식에 대한 사양을 곧 발표하고, JavaFX 런타임을 계속 오픈 소스로 공개하며, 외부 당사자가 라이선스를 부여한 독점 부분에서 이 핵심 부분을 분리할 것이라고 설명했다.[50]

JavaOne 2011에서 오라클은 JavaFX 2.0이 오픈 소스가 될 것이라고 발표했다.[29] 2011년 12월부터 오라클은 GPL+GPL 연결 예외 하에 JavaFX 코드를 오픈 소스로 공개하기 시작했다.[2][51]

JavaFX 런타임을 구성했던 이전 모듈에는 다양한 라이선스가 적용되었다.


  • JavaFX 컴파일러[46]와 이전 버전의 2D 장면 그래프[47]는 GPL v2 라이선스 하에 출시되었다.
  • JavaFX용 NetBeans 플러그인은 GPL v2와 CDDL 하에 이중 라이선스로 제공되었다.[48]


2012년 12월, JavaFX 소스 코드의 새로운 부분이 오라클에 의해 오픈 소스로 공개되었다.[52]

  • 애니메이션 및 타임라인 클래스
  • 이벤트 전달 메커니즘 및 기타 다양한 핵심 클래스
  • 렌더링 트리 인터페이스 및 이 인터페이스의 구현
  • 기하학 및 도형 구현
  • 렌더링 파이프라인에 사용된 렌더링 엔진의 Java 부분
  • 로깅 지원


JDK 11부터 JavaFX가 JDK에서 분리되어, [https://openjfx.io/ OpenJFX]를 이용하게 되었다. 오라클은 클라이언트 지원 로드맵에서 자바FX의 새로운 수정 사항이 2025년 3월까지 Java SE 8에서 계속 지원될 것이라고 밝혔다.[36] 이전에 오라클은 "관심 있는 제3자와 협력하여 자바FX를 별도로 배포 가능한 오픈 소스 모듈로 구축하고 유지 관리하는 것을 더 쉽게 만들고 있다"고 발표했다. 자바FX는 JDK 외에도 다운로드 가능한 모듈로 글루온에 의해 향후에도 계속 지원될 것이다.[37]

7. 1. JDK 분리

JDK 11부터 JavaFX가 JDK에서 분리되어, [https://openjfx.io/ OpenJFX]를 이용하게 되었다.

7. 2. OpenJFX 프로젝트

오라클은 클라이언트 지원 로드맵에서 자바FX의 새로운 수정 사항이 2025년 3월까지 Java SE 8에서 계속 지원될 것이라고 밝혔다.[36] 이전에 오라클은 "관심 있는 제3자와 협력하여 자바FX를 별도로 배포 가능한 오픈 소스 모듈로 구축하고 유지 관리하는 것을 더 쉽게 만들고 있다"고 발표했다. 자바FX는 JDK 외에도 다운로드 가능한 모듈로 글루온에 의해 향후에도 계속 지원될 것이다.[37]

JavaFX 런타임을 구성했던 이전 모듈에는 다양한 라이선스가 적용되었다.

  • JavaFX 컴파일러[46]와 이전 버전의 2D 장면 그래프[47]는 GPL v2 라이선스 하에 출시되었다.
  • JavaFX용 NetBeans 플러그인은 GPL v2와 CDDL 하에 이중 라이선스로 제공되었다.[48]


선은 JavaFX 최초 릴리스에 대한 JavaFX 라이선스 모델 전략을 발표할 것이라고 설명했다.[49] 2008년 출시 이후, 선의 부사장인 지트 카울은 JavaFX 및 관련 파일 형식에 대한 사양을 곧 발표하고, JavaFX 런타임을 계속 오픈 소스로 공개하며, 외부 당사자가 라이선스를 부여한 독점 부분에서 이 핵심 부분을 분리할 것이라고 설명했다.[50]

JavaOne 2011에서 오라클은 JavaFX 2.0이 오픈 소스가 될 것이라고 발표했다.[29] 2011년 12월부터 오라클은 GPL+GPL 연결 예외 하에 JavaFX 코드를 오픈 소스로 공개하기 시작했다.[2][51] 2012년 12월, JavaFX 소스 코드의 새로운 부분이 오라클에 의해 오픈 소스로 공개되었다.[52]

  • 애니메이션 및 타임라인 클래스
  • 이벤트 전달 메커니즘 및 기타 다양한 핵심 클래스
  • 렌더링 트리 인터페이스 및 이 인터페이스의 구현
  • 기하학 및 도형 구현
  • 렌더링 파이프라인에 사용된 렌더링 엔진의 Java 부분
  • 로깅 지원

JavaFX는 JDK 11에 더 이상 포함되지 않으므로, [https://openjfx.io/ OpenJFX]를 이용하게 되었다. 또한, 2012년 11월에는 자바FX용 DSL 셰이더 언어인 Decora의 오픈 소스를 발표하여 OpenGL 및 Direct3D용 셰이더를 생성할 수 있도록 했다.[35]

8. 비판 및 한계

8. 1. 웹 기술과의 경쟁

8. 2. 복잡성

9. 결론

참조

[1] 웹사이트 Products » JavaFX https://gluonhq.com/[...] 2023-06-20
[2] 웹사이트 OpenJFX Project https://openjdk.java[...] Oracle Corporation 2011-12-07
[3] 웹사이트 JavaFX Developer Home https://www.oracle.c[...] 2019-06-14
[4] 웹사이트 The Future of JavaFX and Other Java Client Roadmap Updates https://blogs.oracle[...] 2018-03-07
[5] 웹사이트 JavaFXPorts - Gluon https://gluonhq.com/[...] 2018-05-01
[6] 웹사이트 Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon https://gluonhq.com/ 2017-12-16
[7] 웹사이트 Installing JavaFX Production Suite http://java.sun.com/[...]
[8] 웹사이트 JavaFX Overview (Release 8) https://docs.oracle.[...] 2014
[9] 웹사이트 Google Code Archive - Long-term storage for Google Code Project Hosting https://code.google.[...] 2016-08-01
[10] 웹사이트 Visage Language https://github.com/v[...] 2023-07-06
[11] 웹사이트 JavaFX FAQ https://www.oracle.c[...]
[12] 웹사이트 JavaFX Roadmap https://web.archive.[...] Oracle Corporation 2012-11-24
[13] 웹사이트 3D Features Planned for Version 8 https://mail.openjdk[...] Oracle Corporation 2012-11-24
[14] 웹사이트 3D Features Planned for Version 8 https://wikis.oracle[...] Oracle Corporation 2012-11-24
[15] 웹사이트 Dialog (JavaFX 9) https://web.archive.[...] 2015-01-05
[16] 웹사이트 JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization https://openjdk.java[...] Oracle Corporation 2015-01-14
[17] 웹사이트 Gluon and JavaFX https://gluonhq.com/[...]
[18] 웹사이트 javafxports/openjdk-jfx https://github.com/j[...]
[19] 웹사이트 JavaFX https://gluonhq.com/[...]
[20] 웹사이트 OpenJFX 12 Release notes https://gluonhq.com/[...]
[21] 웹사이트 OpenJFX 13 Release notes https://gluonhq.com/[...]
[22] 웹사이트 OpenJFX 14 Release notes https://gluonhq.com/[...]
[23] 웹사이트 OpenJFX 15 Release notes https://gluonhq.com/[...]
[24] Youtube JavaFX 20 and Beyond https://www.youtube.[...] 2023-06-20
[25] 웹사이트 F3 ( Chris Oliver's Weblog) https://blogs.oracle[...] 2012-01-06
[26] 웹사이트 Repositories and Releases https://wiki.openjdk[...] 2013-06-29
[27] 웹사이트 Top 5 Most Important Features in JavaFX 1.2 https://web.archive.[...] 2009-06-09
[28] 웹사이트 JavaFX 1.3 Released, Improves User Experiences https://web.archive.[...] 2010-04-22
[29] 웹사이트 JavaFX 2.0 arrives and heads for open source http://www.zdnet.co.[...] ZDNet 2011-10-06
[30] 웹사이트 Introducing FXML http://fxexperience.[...] 2011-08-15
[31] 웹사이트 JDK 7u4 and JavaFX 2.1 released, now also including Mac OS X | Across the Universe http://terrencebarr.[...] 2012-04-27
[32] 웹사이트 JavaFX 2.1 Release Notes https://docs.oracle.[...] Oracle Corporation
[33] 웹사이트 What's new in JavaFX 2.2 (The JavaFX Blog) https://web.archive.[...]
[34] 웹사이트 JavaFX 2.2 Release Notes https://docs.oracle.[...] Oracle Corporation
[35] 웹사이트 Open Sourcing: decora-compiler https://mail.openjdk[...] Oracle Corporation 2012-11-06
[36] 웹사이트 Oracle Java SE Support Roadmap https://www.oracle.c[...] Oracle 2020-05-13
[37] 웹사이트 JavaFX https://gluonhq.com/[...]
[38] 웹사이트 General Availability Download https://www.oracle.c[...] Oracle Corporation
[39] 웹사이트 Porting JavaFX https://mail.openjdk[...] 2012-12-03
[40] 웹사이트 Survey: JavaFX on tablets and mobile devices https://mail.openjdk[...] 2012-12-07
[41] 웹사이트 1 JavaFX Overview (Release 8) https://docs.oracle.[...]
[42] 웹사이트 February Open Source Update http://fxexperience.[...] Oracle Corporation 2013-02-16
[43] 웹사이트 Oracle Announces Open Source JavaFX for iOS and Android http://www.infoq.com[...] Infoq.com 2013-02-13
[44] 웹사이트 JDK for ARM 8u33 release notes https://www.oracle.c[...] Oracle Corporation 2013-02-16
[45] 웹사이트 Raspberry Pi's mailing list: Where's JavaFX in recent Java 8u33 for the ARM ? https://www.raspberr[...] 2013-01-27
[46] 웹사이트 OpenJFX Compiler Project http://openjfx-compi[...] 2020-02
[47] 웹사이트 Project Scene Graph home http://scenegraph.de[...]
[48] 웹사이트 JavaFX Downloads http://openjfx.dev.j[...] 2020-02
[49] 웹사이트 Will JavaFX technology be released in open source? http://java.sun.com/[...]
[50] 웹사이트 JavaFX — the road ahead http://blogs.sun.com[...] 2008-12-16
[51] 웹사이트 Call for patches https://forums.oracl[...] Oracle Corporation 2011-12-02
[52] 웹사이트 More of JavaFX open-sourced https://mail.openjdk[...] Oracle Corporation 2012-12-18
[53] 웹사이트 OpenJFX Project http://openjdk.java.[...] 오라클
[54] 웹사이트 Google Code Archive - Long-term storage for Google Code Project Hosting https://code.google.[...]
[55] 웹사이트 Archived copy http://www.oracle.co[...]
[56] 웹사이트 JavaFXに関してよくある質問 https://www.oracle.c[...]
[57] 웹사이트 JavaFX Supported Configurations http://www.oracle.co[...] 2014-04-08
[58] 웹사이트 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle http://java.sun.com/[...]
[59] 웹사이트 Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon http://gluonhq.com/ 2017-12-16
[60] 웹인용 OpenJFX 19 Release Notes https://gluonhq.com/[...]
[61] 웹인용 OpenJFX Project http://openjdk.java.[...] 오라클
[62] 웹인용 JavaFX FAQ http://www.oracle.co[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com