차례:
- JavaFX에서 모든 세계는
- JavaFX에서 레이아웃은 컨트롤 및 모양과 마찬가지로 Node 클래스의 하위 클래스입니다. 레이아웃은 노드 모음을 포함하며 레이아웃에 포함 된 노드는 컨트롤, 모양 또는 다른 레이아웃과 같은 모든 종류의 노드가 될 수 있습니다.이 방법은 Swing이 패널과 레이아웃을 연결하는 것보다 훨씬 덜 복잡합니다.
- JavaFX는 속성을 지원합니다.
- 속성
- 일반적으로 JavaFX 컨트롤 계층은 Swing보다 더 완벽합니다. 두 가지 모두 버튼, 체크 상자, 콤보 상자 등 모든 기본 컨트롤을 가지고 있습니다. 그러나 JavaFX에는 접을 수있는 TitledPane 컨트롤과 스택에 여러 TitledPane 컨트롤을 정렬하는 Accordion 컨트롤과 같이 Swing에는없는 흥미로운 컨트롤이 몇 가지 있습니다. 그리고 이러한 모든 컨트롤이 CSS로 스킨 가능하다는 사실은 스윙에 비해 큰 이점을 제공합니다.
- javafx. 장면. 효과 패키지에는 장면 그래프의 모든 노드에 특수 효과를 쉽게 적용 할 수있는 많은 클래스가 포함되어 있습니다. 이 클래스를 사용하면 사용자 인터페이스의 모양을 변형시킬 수있는 그림자, 반사, 흐림 및 기타 흥미로운 시각 효과를 쉽게 적용 할 수 있습니다.
- 애니메이션은 스윙에서 가능하지만 스윙에서는 직접 지원하지 않습니다. Swing 구성 요소에 애니메이션을 적용하려면 고유 한 타이머를 설정하고 애니메이션을 수행하기위한 자체 논리를 작성해야합니다.
- JavaFX는 최신 터치 장치를 지원합니다.
- 이 10 가지 차이점 목록을 JavaFX에 분명히 찬성하는 점으로 완전히 채우는 것은 적절하지 않습니다. 여기에 JavaFX에 대한 약간의 불편 함이 있습니다. Swing의 JOptionpane 클래스와 동일한 기본 제공 기능이 없으므로 짧은 경고 메시지를 표시하거나 사용자로부터 간단한 입력을받는 데 매우 편리합니다. JavaFX에서는이 유용한 클래스와 동등한 기술을 직접 만들어야합니다.
비디오: 계산기를 만들어보자 ⑫ 가로로 된 화면에서는? 2024
Java 프로그래머로서의 경험이 있다면 Swing과 함께 사용자 인터페이스를 만들 수 있습니다. 오라클은 Swing을 완전히 포기한 것은 아니며, 더 이상 사용되지 않으며 Swing 애플리케이션도 계속 작동합니다. 그러나 Swing을 향상시키기위한 작업이 더 이상 수행되지 않고 있으며 오라클은 JavaFX가 미래라는 것을 분명히했습니다.
JavaFX와 Swing의 기본적인 차이점은 다음과 같습니다.
JavaFX에서 모든 세계는
프레임 라고하며 JFrame 클래스에 의해 정의됩니다. 프레임은 기본적으로 사용자 인터페이스 요소의 컨테이너 역할을하는 패널 을 추가 할 수있는 빈 창이됩니다. 패널은 JPanel 클래스에 의해 정의됩니다. Swing 어플리케이션은 실제로 JFrame 클래스를 확장하는 클래스입니다. 사용자 인터페이스 구성 요소를 표시하려면 JPanel에 구성 요소를 추가 한 다음이 패널을 프레임에 추가합니다.
스테이지 는 최상위 컨테이너 (일반적으로 윈도우)를 나타내지 만 일부 운영 체제에서는 스테이지가 전체 디스플레이 표면을 나타낼 수 있습니다. 사용자 인터페이스를 구성하는 개별 컨트롤 및 기타 구성 요소는 Scene 클래스에 정의 된 장면 에 포함되어 있습니다. 응용 프로그램은 둘 이상의 장면을 가질 수 있지만 주어진 시간에 장면 중 하나만 스테이지에 표시 할 수 있습니다. ->
장면에는 JavaFX에서 가장 중요한 개념 인 장면 그래프가 들어 있습니다. 장면 그래프는 사용자 인터페이스 (그룹, 레이아웃, 컨트롤 및 모양)를 구성하는 모든 요소의 모음입니다. 이러한 객체는 nodes 라고하며 모두 Node 클래스에서 파생됩니다. Node 클래스에는 사용자 인터페이스에 추가 할 수있는 모든 객체에 대해 자동으로 사용할 수있는 많은 유용한 기능이 있습니다. 예를 들어 Node 클래스는 장면 그래프의 노드를 회전 할 수있는 setRotate 메서드를 정의합니다. JavaFX에서 레이아웃 관리자는 노드입니다. Swing에서 레이아웃은 JPanel과 연결됩니다. 최상위 JPanel은 프레임의 기본 레이아웃을 제공합니다. 최상위 레이아웃에서 추가 레이아웃을 중첩하려면 추가 JPanel을 만들고 관련 레이아웃을 설정 한 다음 상위 레벨 레이아웃에 추가해야합니다.
JavaFX에서 레이아웃은 컨트롤 및 모양과 마찬가지로 Node 클래스의 하위 클래스입니다. 레이아웃은 노드 모음을 포함하며 레이아웃에 포함 된 노드는 컨트롤, 모양 또는 다른 레이아웃과 같은 모든 종류의 노드가 될 수 있습니다.이 방법은 Swing이 패널과 레이아웃을 연결하는 것보다 훨씬 덜 복잡합니다.
JavaFX는 이벤트 처리를 향상 시켰습니다.
JavaFX와 Swing 모두 사용자 입력 이벤트에 응답하기 위해 이벤트 처리를 사용합니다. 그러나 JavaFX의 이벤트는 Swing의 해당 이벤트보다 더 잘 생각되고 일관성이 있습니다. 그러나 JavaFX에서 가장 중요한 이벤트 처리가 개선 된 이유는 속성에 의존하기 때문입니다.
JavaFX는 속성을 지원합니다.
JavaFX는
속성
의 개념을 지원하며 클래스 전반에서 속성을 광범위하게 사용합니다. 간단히 말해서, 속성은 그 값을 관찰 할 수있는 변수입니다. 속성을 사용하여 리스너를 등록 할 수 있으므로 속성이 변경 될 때마다 자동으로 트리거되는 코드를 작성할 수 있습니다. 또한 속성을 서로 바인딩 할 수 있습니다. 즉, 하나의 속성 값이 변경되면 다른 속성 값도 자동으로 변경됩니다. 거의 모든 사용자 인터페이스 요소의 특성이 속성을 통해 관리되기 때문에 JavaFX는 스윙에서 전혀 들리지 않는 이벤트 처리 기능을 제공합니다. 예를 들어, JavaFX에서 모양 리스너를 도형의 색상에 연결할 수 있습니다. 모양이 색이 바뀌면 이벤트 리스너 코드가 실행됩니다. 기능을 사용할 수는 없지만 필요한 경우 사용할 수 있습니다. JavaFX는 CSS로 스킨 가능 JavaFX의 가장 좋은 기능 중 하나는 CSS (Cascading Style Sheets)로 서식을 제어 할 수 있다는 것입니다. 사용자 인터페이스의 외관에 관한 거의 모든 측면을 스타일 규칙에 의해 설정할 수 있으며 사용자가 몇 가지 사용 가능한 스타일 시트 중에서 장면에 적용 할 스타일 시트를 쉽게 선택할 수 있습니다. 따라서 단일 메서드 호출로 응용 프로그램의 전체 모양을 변경할 수 있습니다.
JavaFX에는 일관된 컨트롤이 있습니다.
일반적으로 JavaFX 컨트롤 계층은 Swing보다 더 완벽합니다. 두 가지 모두 버튼, 체크 상자, 콤보 상자 등 모든 기본 컨트롤을 가지고 있습니다. 그러나 JavaFX에는 접을 수있는 TitledPane 컨트롤과 스택에 여러 TitledPane 컨트롤을 정렬하는 Accordion 컨트롤과 같이 Swing에는없는 흥미로운 컨트롤이 몇 가지 있습니다. 그리고 이러한 모든 컨트롤이 CSS로 스킨 가능하다는 사실은 스윙에 비해 큰 이점을 제공합니다.
JavaFX에는 특수 효과가 있습니다.
javafx. 장면. 효과 패키지에는 장면 그래프의 모든 노드에 특수 효과를 쉽게 적용 할 수있는 많은 클래스가 포함되어 있습니다. 이 클래스를 사용하면 사용자 인터페이스의 모양을 변형시킬 수있는 그림자, 반사, 흐림 및 기타 흥미로운 시각 효과를 쉽게 적용 할 수 있습니다.
JavaFX에서의 애니메이션이 더 쉽습니다.
애니메이션은 스윙에서 가능하지만 스윙에서는 직접 지원하지 않습니다. Swing 구성 요소에 애니메이션을 적용하려면 고유 한 타이머를 설정하고 애니메이션을 수행하기위한 자체 논리를 작성해야합니다.
반대로, JavaFX에는 씬 그래프의 모든 노드에 적용 할 수있는 정교한 애니메이션을 기본적으로 지원합니다. 여러 가지 내장 된 전환 클래스 중 하나를 사용하여 페이드, 회전 또는 모션 경로와 같은 공통 애니메이션을 수행 할 수 있습니다.또는 KeyFrame 및 Timeline 클래스를 사용하여 쉽게 사용자 정의 애니메이션을 설정할 수 있습니다.
JavaFX는 최신 터치 장치를 지원합니다.
스윙은 최신 터치 장치를 지원하지 않습니다. 반대로, JavaFX에는 스크롤링, 스 와이프, 회전 및 확대 / 축소와 같은 일반적인 터치 제스처가 내장되어 있습니다. JavaFX에서 이러한 이벤트를 처리하는 것은 다른 유형의 이벤트를 처리하는 것처럼 쉽습니다. 터치 이벤트에 이벤트 리스너를 설치 한 다음 적절하게 응답하는 코드를 작성하기 만하면됩니다.
JavaFX에는 JOptionPane과 동일한 기능이 없습니다.