JavaFX - Arsitektur

JavaFX menyediakan API lengkap dengan serangkaian kelas dan antarmuka yang kaya untuk membangun aplikasi GUI dengan grafik yang kaya. Paket penting dari API ini adalah -

  • javafx.animation - Berisi kelas untuk menambahkan animasi berbasis transisi seperti fill, fade, rotate, scale dan translation, ke node JavaFX.

  • javafx.application - Berisi sekumpulan kelas yang bertanggung jawab atas siklus hidup aplikasi JavaFX.

  • javafx.css - Berisi kelas untuk menambahkan gaya seperti CSS ke aplikasi JavaFX GUI.

  • javafx.event - Berisi kelas dan antarmuka untuk menyampaikan dan menangani acara JavaFX.

  • javafx.geometry - Berisi kelas untuk mendefinisikan objek 2D dan melakukan operasi padanya.

  • javafx.stage - Paket ini menampung kelas kontainer tingkat atas untuk aplikasi JavaFX.

  • javafx.scene- Paket ini menyediakan kelas dan antarmuka untuk mendukung grafik pemandangan. Selain itu, ia juga menyediakan sub-paket seperti canvas, chart, control, effect, image, input, layout, media, paint, shape, text, transform, web, dll. Ada beberapa komponen yang mendukung API kaya JavaFX ini. .

Ilustrasi berikut menunjukkan arsitektur JavaFX API. Di sini Anda dapat melihat komponen-komponen yang mendukung JavaFX API.

Grafik Pemandangan

Di JavaFX, Aplikasi GUI dikodekan menggunakan Scene Graph. Sebuah Grafik Pemandangan adalah titik awal pembangunan Aplikasi GUI. Ini memegang aplikasi primitif (GUI) yang disebut sebagai node.

Node adalah objek visual / grafis dan mungkin termasuk -

  • Geometrical (Graphical) objects - (2D dan 3D) seperti lingkaran, persegi panjang, poligon, dll.

  • UI controls - seperti Tombol, Kotak Centang, Kotak Pilihan, Area Teks, dll.

  • Containers - (panel tata letak) seperti Border Pane, Grid Pane, Flow Pane, dll.

  • Media elements - seperti objek audio, video dan gambar.

Secara umum, kumpulan node membuat grafik pemandangan. Semua node ini disusun dalam urutan hierarki seperti yang ditunjukkan di bawah ini.

Setiap node dalam grafik adegan memiliki satu orang tua, dan node yang tidak berisi orang tua disebut sebagai root node.

Dengan cara yang sama, setiap node memiliki satu atau lebih anak, dan node tanpa anak disebut sebagai leaf node; simpul dengan anak-anak disebut sebagaibranch node.

Sebuah contoh node dapat ditambahkan ke grafik pemandangan hanya sekali. Node grafik pemandangan dapat memiliki Efek, Opasitas, Transformasi, Penanganan Acara, Penangan Acara, Status Khusus Aplikasi.

Prisma

Prisma adalah a high performance hardware–accelerated graphical pipelineyang digunakan untuk merender grafik di JavaFX. Itu dapat membuat grafik 2-D dan 3-D.

Untuk membuat grafik, Prism menggunakan -

  • DirectX 9 pada Windows XP dan Vista.
  • DirectX 11 di Windows 7.
  • OpenGL di Mac dan Linux, Sistem Tertanam.

Jika dukungan perangkat keras untuk grafik pada sistem tidak mencukupi, maka Prism menggunakan jalur render perangkat lunak untuk memproses grafik.

Saat digunakan dengan Kartu Grafis atau GPU yang didukung, ia menawarkan grafis yang lebih halus. Untuk berjaga-jaga jika sistem tidak mendukung kartu grafis, maka Prism default ke tumpukan rendering perangkat lunak (salah satu dari dua di atas).

GWT (Toolkit Jendela Kaca)

Seperti namanya, GWT menyediakan layanan untuk mengelola Windows, Timers, Surfaces, dan Event Queues. GWT menghubungkan Platform JavaFX ke Sistem Operasi Native.

Perangkat Kuantum

Ini adalah abstraksi atas komponen tingkat rendah Prism, Glass, Media Engine, dan Web Engine. Ini mengikat Prism dan GWT bersama dan membuatnya tersedia untuk JavaFX.

WebView

Menggunakan JavaFX, Anda juga dapat menyematkan konten HTML ke grafik pemandangan. WebView adalah komponen JavaFX yang digunakan untuk memproses konten ini. Ini menggunakan teknologi yang disebutWeb Kit, yang merupakan mesin browser web sumber terbuka internal. Komponen ini mendukung berbagai teknologi web seperti HTML5, CSS, JavaScript, DOM dan SVG.

Menggunakan WebView, Anda dapat -

  • Render konten HTML dari URL lokal atau jarak jauh.
  • Mendukung riwayat dan menyediakan navigasi Mundur dan Maju.
  • Muat ulang konten.
  • Menerapkan efek ke komponen web.
  • Edit konten HTML.
  • Jalankan perintah JavaScript.
  • Tangani acara.

Secara umum, menggunakan WebView, Anda dapat mengontrol konten web dari Java.

Mesin Media

Itu JavaFX media engine didasarkan pada mesin sumber terbuka yang dikenal sebagai Streamer. Mesin media ini mendukung pemutaran konten video dan audio.

Mesin media JavaFX menyediakan dukungan untuk audio untuk format file berikut -

Audio
  • MP3
  • WAV
  • AIFF
Video
  • FLV

Paket javafx.scene.mediaberisi kelas dan antarmuka untuk menyediakan fungsionalitas media di JavaFX. Ini disediakan dalam bentuk tiga komponen, yaitu -

  • Media Object - Ini mewakili file media

  • Media Player - Untuk memutar konten media.

  • Media View - Untuk menampilkan media.