9. LABORATORIYA ISHI
Mavzu: JavaFX yordamida tarmoq dasturini yaratish
Ishning maqsadi:
Java dasturlash tili java.net.*, java.io.*, javafx.stage.*, javafx.application.*,
javafx.event.* paketlari klasslaridan foydalanib GUI kliyent-server tarmoq
dasturini yaratish.
Topshiriq:
Talaba laboratoriya ishi uchun shaxsiy topshiriq oladi. Bu topshiriq bo‘yicha
talaba TCP kliyent-server tarmoq dasturini JavaFX asosida yaratadi. Har bir talaba
uchun shaxsiy topshiriq 9.1- jadvalda berilgan.
Nazariy qism:
JavaFX - boy Internet ilovalarini (Rich Internet Applications) yaratish uchun
foydalaniladigan Java kutubxonasi. Ushbu kutubxonadan
foydalanib yaratilgan
ilovalar turli xil operatsion tizimlarda va qurilmalarda, masalan, Desktop
kompyuterlari,
mobil telefonlar, televizorlar, planshetlar va boshqalarda ishlashi
mumkin.
Java dasturlash tilidan foydalangan holda GUI ilovalarini yaratish uchun
dasturchilar Advanced Windowing Toolkit (AWT) va Swing kabi kutubxonalarga
tayanadilar. JavaFX paydo bo’lganidan so’ng, ushbu Java dasturchilari boy
tarkibga ega samarali GUI ilovalarni JavaFXdan foydalanib yaratishlari mumkin.
Boy xususiyatlarga ega kliyent tomon ilovalarini yaratish uchun dasturchilar
Media, UI Controls, Web, 2D va 3D kabi funktsiyalarni qo’shish
uchun turli xil
kutubxonalarga murojaat qilishadi. JavaFX ushbu xususiyatlarning barchasini o’z
ichiga oladi. Bunga qo’shimcha ravishda, dasturchilar Java kutubxonasining
Swing kabi mavjud xususiyatlaridan ham foydalanishlari mumkin.
JavaFX grafika va medianing boy to’plamini
taqdim etadi va apparat
tezlashtirilgan grafikasi orqali zamonaviy Graphical Processing Unit (GPU)dan
foydalanadi. JavaFXdan Groovy va JRuby kabi JVM asosidagi texnologiyalarda
foydalanish mumkin.
2
JavaFX GUI ilovalarini yaratish uchun boy sinflar va interfeyslarga ega API
hisoblanadi. Quyida muhim APIlar keltirilgan:
javafx.animation,
javafx.application,
javafx.css,
javafx.event,
javafx.geometry, javafx.stage, javafx.layout, javafx.beans, javafx.collections,
javafx.util, javafx.concurrent, javafx.embed.swing, javafx.fxml, javafx.print,
javafx.scene,
javafx.scene.shape,
javafx.scene.text,
javafx.scene.effect,
javafx.scene.input, javafx.scene.transform, javafx.scene.paint, javafx.scene.media,
javafx.scene.web, javafx.scene.image, javafx.scene.control, javafx.scene.chart.
JavaFXda GUI ilovalari Scene Graph yordamida kodlanadi. Scene Graph
GUI ilovasini yaratishning boshlang'ich nuqtasidir. U GUI ilova node (tugun)lari
deb ataladigan sodda vositalarni o'z ichiga oladi.
Node vizual/grafik obyekt bo’lib, unda quyidagilar bo’lishi mumkin:
-
Geometrik (Grafik) obyektlar - (2D va 3D), masalan, aylana,
to’rtburchak, ko’pburchak va boshqalar.
-
UI elementlari - Button, Checkbox, Choice box, Text Area va hokazo.
-
Konteynerlar - Border Pane, Grid Pane, Flow Pane va boshqalar.
-
Media elementlari - audio, video va tasvir obyektlari.
Stage (oyna) JavaFX ilovasining barcha obyektlarini o’z ichiga oladi. U
javafx.stage paketining Stage sinfi yordamida yaratiladi. Boshlang’ich
Stage
platformaning o’zi tomonidan yaratiladi. Yaratilgan Stage obyekti Application
sinfining start() metodi uchun argument sifatida uzatiladi.
Stage ikki Width va Height parametrlariga ega. U tarkibiy qism va bezaklar
(sarlavha paneli va chegaralar) ga bo’linadi.
Stagelarning besh turi mavjud:
-
Decorated
-
Undecorated
-
Transparent
-
Unified
-
Utility
Stage tarkibini ko'rsatish uchun show() metodini ishga tushirish kerak.
3
Scene JavaFX ilovasining fizik tarkibini aks ettiradi. Unda scene graphining
barcha tarkibi mavjud. javafx.scene paketining Scene sinf Scene obyektini
namoyish etadi.