Mundarija:

Google Drive ma'lumotlar bazasida Java ilovasi ishladi: 8 qadam
Google Drive ma'lumotlar bazasida Java ilovasi ishladi: 8 qadam

Video: Google Drive ma'lumotlar bazasida Java ilovasi ishladi: 8 qadam

Video: Google Drive ma'lumotlar bazasida Java ilovasi ishladi: 8 qadam
Video: GOOGLE DRIVE (15 GB) hamda YANDEX DISK (10 GB). 2024, Noyabr
Anonim
Java ilovasi Google Drive ma'lumotlar bazasida ishladi
Java ilovasi Google Drive ma'lumotlar bazasida ishladi
Java ilovasi Google Drive ma'lumotlar bazasida ishladi
Java ilovasi Google Drive ma'lumotlar bazasida ishladi
Java ilovasi Google Drive ma'lumotlar bazasida ishladi
Java ilovasi Google Drive ma'lumotlar bazasida ishladi

Siz hech qachon dinamik ma'lumotlar bazasida ishlaydigan, texnologik bo'lmagan foydalanuvchilarga ma'lumotlarni kiritishga imkon beradigan va kompaniya resurslaridan foydalanmaydigan dastur yaratishni xohlaganmisiz? Xo'sh, unda siz uchun echim bor. Bugun biz Google Drive -da ishlaydigan dastur yaratamiz (ayniqsa, Google Sheets) va undan turli maqsadlarda foydalanish mumkin. Garchi bu qo'llanma kollej shaharchasi atrofida sodir bo'layotgan voqealar ro'yxatini ko'rsatish uchun tadbirlarga asoslangan dastur yaratishga qaratilgan bo'lsa-da, bu loyihani ko'p jihatdan ishlash uchun osonlik bilan qayta yozish mumkin, bu dasturni kuzatuvchi hisoblagich. mahsulotlar uchun zaxiralar. Agar biz nima qilmoqchi ekanligimizni bilmoqchi bo'lsangiz, men arizamning nusxasini ilova qildim. Zip faylini oching va uning ichida JARni ishga tushiring. Va endi, ko'p vaqt o'tmasdan, boshlaylik!

1 -qadam: Sizga nima kerak

Ushbu loyihani boshlash uchun sizga quyidagi manbalar kerak bo'ladi:

  • Netbeans

    Men Java EE -ni yuklab olishni tavsiya qilaman, chunki u serverni qo'llab -quvvatlaydi, lekin agar keraksiz fayllar yoki qo'shimcha disk maydoni bo'lmasa, Java SE ham ishlaydi. Netbeans bizning ilovamizni kodlash va kompilyatsiya qilish uchun IDE sifatida xizmat qiladi

  • Jsoup

    Men buni yuklash uchun ko'rsatmalarga qo'shdim. Bu HTML -tahlil vositasi bo'lib, u bizga e'lon qilingan elektron jadvaldan ma'lumotlarni olish imkonini beradi

  • Java SDK (V8)

    Tizimingizga mos keladigan faylni yuklab oling. Agar sizda oldingi versiyada Java SDK bo'lsa, men yangilashni tavsiya qilaman. Ba'zi funktsiyalarim v8 uchun xos bo'lgan yangi lambda ifodalarini ishlatadi va nima qilayotganingizga qarab kod ularsiz ishlamasligi mumkin

  • Visual Studio (ixtiyoriy)

    To'liq ixtiyoriy. NetBeans bizning ilovamizni kompilyatsiya qilish va qadoqlashda ajoyib ish qilsa -da, men ishlab chiqarish studiyasining ashaddiy muxlisi emasman. Men VSda kodlashni afzal ko'raman, chunki u yaxshi interfeysga ega. Agar sizga bu yoqmasa, Internetda boshqa ko'plab IDElar bor, shuning uchun sizga eng yoqqanini toping

  • Boshlang'ich kod

    Men boshlang'ich kodni mana shu manbalarga qo'shdim va uni GitHub -da nashr qildim. Bunda menda asosiy fayl (Event) mavjud bo'lib, u dasturni ishga tushiradigan faylning tuzilishini, shuningdek JavaFX -dan dastur uchun GUI yaratish uchun EventTester -ni ta'minlaydi. Agar siz to'liq tajribaga ega bo'lishni istasangiz, nusxa ko'chirishni va joylashtirishni tavsiya etmayman. Shoshilmang va buni o'qing

Boshqalar:

Java haqida asosiy bilimlar. Java -ni bilish funktsiyalarini yozish, ob'ektlarni yaratish va hk kabi foydali bo'ladi

2 -qadam: ma'lumotlar bazasini o'rnatish

Ma'lumotlar bazasini sozlash
Ma'lumotlar bazasini sozlash

Loyihani boshlash uchun biz avval Google Drive -ga kirib, dasturimizni ishga tushirish uchun foydalanadigan varaqni yaratishimiz kerak. Drive.google.com saytiga o'ting va yuqori chap burchakdagi "Yangi" belgisini bosing va uning ostidagi "Varaqlar" ni tanlang.

Sizning varaqingiz yuklangandan so'ng, davom eting va uni osongina taniladigan narsaga o'zgartiring. Buni qilgandan so'ng, davom eting va har bir ustunga qo'yadigan narsalaringiz kabi ma'lumotlar nomlari bilan yuqori qatorni to'ldiring. Mening misolimga qarab, men yuqori qatorni "Voqealar nomi", "Sana" va boshqalar bilan belgilab qo'ydim.

Shundan so'ng, elektron jadvalni to'ldirishni xohlagan ma'lumotlar bilan to'ldirishni boshlang. Shuni esda tutingki, barcha ma'lumotlarni bir xil formatlashni unutmang, shunda kod xato qilmasdan u bilan ishlashi mumkin. Masalan, agar siz kodingizda sanalarni ishlatmoqchi bo'lsangiz, har bir sanani bir xil formatlashda ehtiyot bo'ling, aks holda kod uni tahlil qila olmaydi.

Ma'lumotlaringizni kiritgandan so'ng, "Fayl" -> "Internetda nashr etish" ga o'ting va elektron jadvalni nashr eting. Bu yerdan siz butun hujjatni tanlab, uning HTML -fayl sifatida nashr etilganligiga ishonch hosil qilmoqchisiz, shunda bizning ilovamiz ma'lumotlarni to'g'ri chizishga qodir. Jadvalni nashr qilgandan so'ng, u ko'rsatgan havolaga e'tibor bering. Bu keyinchalik ilovada kerak bo'ladi.

3 -qadam: NetBeans -ni sozlash

NetBeans -ni sozlash
NetBeans -ni sozlash

Endi bizda elektron jadval mavjud, NetBeans -ni sozlash vaqti keldi, shunda biz kodlashni boshlashimiz mumkin. NetBeans va Java SDK -ni yuklab olib o'rnatgandan so'ng, davom eting va yangi loyiha yarating. Turni tanlashda "Java" toifasini va "Java ilovasi" loyihasini tanlang. Loyihangiz qanday nomlanishni xohlasangiz, shuni tanlang (men o'z loyihamni "Voqea" deb nomladim). "Kutubxonalarni saqlash uchun maxsus papkadan foydalanish" yonidagi katakchani va "Asosiy sinf yaratish" yonidagi katakchani belgilang. Shundan so'ng, NetBeans biz ishlay oladigan rasm va loyiha katalogini yaratishi kerak, xuddi rasmdagidek.

Kodlashni boshlashdan oldin, NetBeans -da JSoup kutubxonasi borligiga ishonch hosil qilishimiz kerak, u bizning elektron jadvalimizni tahlil qilishi kerak. NetBeans -da, loyihangiz katalogi ostidagi "Kutubxonalar" belgisini o'ng tugmasini bosing. Qalqib chiquvchi menyuda.jar faylini qo'shish uchun tugmani tanlang. Endi, siz jsoup -ni qaerga yuklagan bo'lsangiz, o'sha erga o'ting (yuklamalar papkasini, agar siz boshqa joyda ko'rsatmagan bo'lsangiz). Bu faylni tanlang va kutubxonaga qo'shing. Agar siz NetBeans -da Libraries papkasini kengaytirsangiz, endi bu sohada jsoup.jar -ni ko'rishingiz kerak. Shunday qilib, biz endi o'z ilovamizni kodlashni boshlashimiz mumkin.

4 -qadam: Asosiy sinfimizni kodlash

Asosiy sinfimizni kodlash
Asosiy sinfimizni kodlash

Shunday qilib, bizning ilovamizni kodlashda birinchi qadam sizning asosiy sinfingizni yaratishdir. Sizning asosiy sinfingiz - biz o'z ob'ektlarimizni yaratadigan, JSoup bilan o'zaro ta'sir qiladigan usullarga ega bo'lgan va boshqalar. Buni o'qigan har bir kishi kodlash tajribasiga ega deb hisoblasangiz, davom eting va quyidagi importdan foydalaning:

java.util. Collections -ni import qilish;

java.util. List -ni import qilish;

java.util. ArrayList -ni import qilish;

java.util. Date -ni import qilish;

java.util.stream. Stream -ni import qilish;

java.util.stream. Collectors -ni import qilish;

java.text. SimpleDateFormat -ni import qilish;

java.text. ParseException ni import qilish;

import org.jsoup. Jsoup;

org.jsoup.nodes. Document -ni import qilish;

org.jsoup.nodes. Elementni import qilish;

org.jsoup.select. Elements -ni import qilish;

javafx.beans.property. SimpleStringProperty -ni import qilish;

Bu juda ko'p tuyulishi mumkin va sizning loyihangizga qarab, hammasi kerak bo'lmasligi mumkin. Kodlashda davom etar ekanmiz, NetBeans sizga ishlatilmagan importlar haqida xabar beradi, shuning uchun biz ularni keyinroq o'chirib tashlashimiz mumkin. Biroq, bu bizga hozir kerak bo'lgan narsa.

Import hisobotlarini olganimizdan so'ng, keling, sinfimizni e'lon qilaylik. Agar siz sinfga xos ob'ektni ishlab chiqishda Dates yoki boshqa asosiy bo'lmagan ob'ektlardan foydalanishni rejalashtirmoqchi bo'lsangiz, men sizning sinf deklaratsiyangizga "Taqqoslanadigan moslamalar" ni qo'shishni maslahat beraman. Bu sizga Ob'ektlarni solishtirish imkonini beradi, bu esa keyinchalik ClassObjects ro'yxatini saralash imkonini beradi. Buni qilgandan so'ng, davom eting va sizga kerak bo'lgan barcha misol o'zgaruvchilarini e'lon qiling. Siz yaratgan har bir umumiy satr uchun siz ham SimpleStringProperty yaratishingiz kerak bo'ladi. Bu JavaFX ob'ektlari bo'lib, ular bizga keyinchalik asosiy sinf ob'ektlari bilan ishlashga imkon beradi.

Endi davom eting va funktsiyalarga kirishingizni e'lon qiling. Asosiy o'zgaruvchilarga kelsak, siz o'zingiz tanlagan funktsiyalarni nomlashingiz mumkin. Biroq, siz SSP kirish funktsiyalari uchun getFunctionNameHere () formatidan foydalanishingiz kerak. Buning sababi shundaki, keyinchalik biz ushbu funktsiyalarga ulanish uchun JavaFX -dan foydalanamiz va biz ishlatadigan funktsiyalar bizdan SSP funktsiyalarini get bilan boshlashimizni talab qiladi. Siz yuqoridagi misolni ko'rishingiz mumkin.

Barcha kirish parametrlarini aniqlagandan so'ng, davom eting va sizga kerak bo'lishi mumkin bo'lgan boshqa funktsiyalarni aniqlang. Bu juda foydalanuvchilarga xos, chunki sizga kerak bo'lgan funktsiyalar loyihadan loyihaga farq qiladi. Agar sizga ilhom kerak bo'lsa, Javadoc -ni yoki haqiqiy kodimni tekshiring va men bajargan ba'zi funktsiyalarni ko'ring. Masalan, men ro'yxatni sanasi bo'yicha saralaydigan tartiblash funktsiyasini, shuningdek, jamoaviy holati bo'lgan voqealarni va boshqalarni qaytaradigan funktsiyalarni yaratdim. Agar siz ba'zi sinovlarni o'tkazishingiz uchun ularni statik qilib qo'yish to'g'ri bo'lsa -da, loyihaning keyingi bosqichiga o'tishda xatoliklarga yo'l qo'ymaslik uchun disk raskadrovka tugagandan so'ng hech qanday statik usullar bo'lmasligini tavsiya qilaman.

5 -qadam: Create () usulini aniqlash

Bizning yaratish () usulini aniqlash
Bizning yaratish () usulini aniqlash

Endi kodning eng muhim qismi keladi, bu erda biz create () usulini belgilaymiz, bu bizning veb -sahifamizga kirishga imkon beradi va bizga ma'lumotlarni oladi. Shuni ta'kidlash kerakki, siz usul deklaratsiyangizga istisno chizig'ini qo'shishingiz kerak bo'ladi, shuning uchun kodimizga harakat bloklarini yozish shart emas. Boshlash uchun davom eting va ob'ektingizning bo'sh ro'yxatini e'lon qiling. Mening vaziyatimda shunday ko'rinardi

Voqealar hodisalari = yangi ArrayList ()).

Endi borib, oldin chop etilgan elektron jadvalga ko'chirgan URL manzilingizni toping. Bu havolani Java -da mag'lubiyat deb e'lon qiling va uni xohlaganingizcha chaqiring. Endi davom eting va yangi Jsoup hujjatini e'lon qiling. Siz buni yangi hujjat ob'ektini yaratish orqali qilishingiz mumkin, masalan

Document doc = new Document ();

Keling, hujjatingizni bizning URL manzilimizga ulanish va ma'lumotlarni olish uchun sozlang. Buning uchun harakat qilib ko'ring:

Hujjat doc = Jsoup.connect (url).get ();

Endi biz hujjatning asosiy qismini olishimiz kerak, bu erda haqiqiy ma'lumotlar saqlanadi.

String body = doc.body (). Text ();

Endi biz tanadan ma'lumotlarni olib tashlashni boshlashimiz kerak. Bizning ma'lumotlar jadvalda bo'lgani uchun (elektron jadval bo'lgani uchun), biz jadvalni tanadan olib tashlashimiz kerak. Kel urinib ko'ramiz

Element jadvali = doc.select ("jadval"). Get (0);

Bu birinchi jadvalni tanlaydi. Bunday holda, faqat bittasi bor. Endi yozing

Satr elementlari = table.select ("tr");

Bu bizni jadvaldagi barcha qatorlarni oladi.

Shunday qilib, hozir bizning barcha ma'lumotlarimiz bu satr o'zgaruvchisida. Bu hammasi yaxshi, lekin bu funktsiyani ushbu sinf ichida yozishning asosiy ma'nosi shundaki, biz undan ob'ektlar yaratishimiz mumkin. Shunday qilib, buni qaytarishdan oldin, biz o'z qatorlarimizdan Ro'yxat tuzishimiz kerak. Buning uchun for loopidan foydalanishimiz mumkin. Shuni ta'kidlashim kerakki, bu meni biroz sinovdan o'tkazdi va xatolarga yo'l qo'ydi. Men shuni tushunib etdimki, qatorlardan tortib olishda bizning ba'zi ma'lumotlarimiz bu holat uchun foydali emas, chunki u har bir varaqning nomi, ma'lumotlar satrining g'oyalari yozilgan birinchi qator va boshqalarni o'z ichiga oladi. Oxirida men boshlang'ichni o'rnatdim. for loop uchun raqamni 2 ga kiriting, shuning uchun u bu elementlarni chetlab o'tadi va bizning elementlarimizni yaratishi mumkin. Oxir -oqibat, men kod bilan qarashni ishlab chiqdim

uchun (int i = 2; i <rows.size (); i ++) {

Element qatori = rows.get (i);

Cols elementlari = row.select ("td");

Endi ob'ekt yaratish uchun shunga o'xshash ishni bajaring

Ob'ekt nomi = yangi ob'ekt (cols.get (0).text ());

Asosan, cols.get (0) satr (i) ustuni (0) dan ma'lumotlarni oladi va uni Stringga aylantiradi, keyin uni ob'ekt konstruktoriga o'tkazish mumkin.

Qurilishni o'rnatgandan so'ng, uni list.add () bilan biz ilgari yaratgan ro'yxatga qo'shing, masalan

voqealar.add (ism);

Endi loopni o'chiring va hozir kerak bo'lishi mumkin bo'lgan barcha funktsiyalarni chaqiring. Masalan, voqealarni sanasi bo'yicha olish uchun men saralash funktsiyasini chaqirdim. Buni qilgandan so'ng, ro'yxatingizni qaytaring, shunda siz ushbu bo'limni tugatasiz!

6 -qadam: Bizning ilovamizni kodlash

Bizning ilovamizni kodlash
Bizning ilovamizni kodlash
Bizning ilovani kodlash
Bizning ilovani kodlash

Yangi fayl yarating va xohlaganingizga nom bering. Sizga quyidagi import kerak bo'ladi:

java.util. List -ni import qilish;

java.util. ArrayList -ni import qilish;

java.util. Date -ni import qilish;

javafx.geometry. Pos -ni import qilish;

javafx.scene.layout. HBox -ni import qilish;

javafx.application. Application -ni import qilish;

javafx.collections.transformation. FilteredList -ni import qilish;

javafx.scene.text. Font -ni import qilish; javafx.scene.control -ni import qilish.*;

javafx.collections. FXCollections ni import qilish;

javafx.collections. ObservableList -ni import qilish;

javafx.geometry. Insets -ni import qilish;

javafx.scene. Group -ni import qilish;

javafx.scene. Scene -ni import qilish;

javafx.scene.control. Label -ni import qilish;

javafx.scene.control.cell. PropertyValueFactory -ni import qilish;

javafx.scene.layout. VBox -ni import qilish;

javafx.stage. Stage -ni import qilish;

Bilaman, bu juda ko'p tuyulishi mumkin, lekin ishoning, ular bizning ilovamizni ishga tushirishimiz uchun kerak. Davom eting va o'z sinfingizni e'lon qiling va u ilovaning kengayishiga ishonch hosil qiling, chunki bu loyihaning zarur komponenti. Boshida, ob'ektingizning TableView bo'lgan yangi misol o'zgaruvchisini e'lon qiling, masalan

shaxsiy TableView jadvali = yangi TableView ();

Shuningdek, biz dasturni ishga tushirish uchun foydalanadigan asosiy usulni e'lon qilamiz. Asosan, u yuqoridagi rasmga o'xshash bo'lishi kerak.

Endi biz boshlash usulini yaratishimiz kerak. Istisno qilishiga ishonch hosil qiling, chunki biz avvalgi sinfimizdan create () usulini chaqiramiz. Bo'sh parametrlar bilan yangi voqea qiling, shunda biz uni yaratish usulini chaqira olamiz. Yangi ro'yxatni aniqlang va uni create () natijasiga tenglashtiring. Endi yangi ObservableList yarating, u bizning jadvalimizni ma'lumotlar bilan to'ldirish uchun ishlatiladi. Buni quyidagicha ta'riflang:

ObservableList ma'lumotlari = FXCollections.observableArrayList ();

Endi yangi sahnani yarating:

Sahna sahnasi = yangi sahna (yangi guruh ());

Sizga mos keladigan narsaga sarlavha, kenglik, balandlik va boshqa narsalarni o'rnating. Siz mening qadriyatlarimni yuqoridagi rasmda ko'rishingiz mumkin. Endi biz stolni o'rnatishni boshlashimiz mumkin. Ko'rsatmoqchi bo'lgan barcha ma'lumotlar uchun TableColumn yarating, masalan:

TableColumn eventCol = yangi TableColumn ("Voqealar nomi"); eventCol.setMinWidth (100); eventCol.setCellValueFactory (yangi PropertyValueFactory ("sName"));

"SName" parametri SSP kirish funktsiyalarining nomi qanday bo'lishidan qat'iy nazar to'ldirilishi kerak, shuning uchun u berilgan ob'ektlar uchun kerakli qiymatlarni olishi mumkin. Iloji boricha ko'p ustunlar yarating va ularni jadvalga qo'shing

FilteredList flEvent = yangi FilteredList (ma'lumotlar, p -> rost);

table.setItems (flEvent);

table.getColumns (). addAll (eventCol, statCol, groupCol, datingCol, descCol, locationCol);

Agar siz men kabi qidiruv panelini qo'shishni xohlasangiz, kodni tekshiring, qanday qilib tanlash qutisi va matn maydonini yaratishingiz mumkin, bu sizning foydalanuvchingizga jadvalni ma'lum qiymatlar bo'yicha filtrlash imkonini beradi. Agar siz buni tanlagan bo'lsangiz, hBox -ni ham o'z ichiga olishi kerak

HBox hBox = yangi HBox (choiceBox, textField);

hBox.setAlignment (Pos. CENTER);

Bundan tashqari, hBox ni quyidagi.addAll () usuliga qo'shishingiz kerak bo'ladi.

Aks holda, ma'lumotlarni saqlash uchun yangi vBox yarating

yakuniy VBox vbox = yangi VBox ();

vbox.getChildren (). addAll (yorliq, jadval);

((Group) scene.getRoot ()). GetChildren (). AddAll (vbox);

stage.setScene (sahna); stage.show ();

Endi kodingizni tuzing va ishga tushiring va u ishlayotganini tekshiring. Xatolarni topish uchun NetBeans -dan foydalaning, ular ekranning o'ng tomonida qizil chiziqlar sifatida ko'rinadi. Boshqa xato qilmaguningizcha bu ishni davom ettiring va loyiha ishga tushadi.

Kodlashni tugatgandan so'ng, men sizning kodingiz nima ekanligini odamlar ko'rishi uchun Javadoc kodingizni yaratishni tavsiya qilaman. Buning uchun ekranning yuqori qismidagi "Ishga tushirish" tugmasi ostida "Javadoc yaratish" tugmasini bosish kifoya. Siz Javadoc -ning nusxasini birinchi sahifadagi zip -faylning ichiga qarang va index.html faylini tanlab topishingiz mumkin.

7 -qadam: Jar faylini yig'ish va qadoqlash

Bizning Jar faylini kompilyatsiya qilish va qadoqlash
Bizning Jar faylini kompilyatsiya qilish va qadoqlash

O'zingizning disk raskadrovka qilib, uni muvaffaqiyatli ishga tushirganingizdan so'ng, siz nihoyat uni JAR fayliga to'plashingiz mumkin, keyin uni nashr etishingiz mumkin, shunda boshqalar bu dasturni NetBeans yoki Jsoup -ga ehtiyoj sezmasdan ishga tushirishlari mumkin.

Ilovani tuzishdan oldin, hamma narsa bajarilganligiga ishonch hosil qiling. Agar siz hujjatlarni qo'shmoqchi bo'lsangiz va JavaDoc yaratmoqchi bo'lsangiz, buni davom ettiring. Agar sizda konsolda chop etadigan System.out buyruqlari bo'lsa, ularni olib tashlang. Asosan, sizning ilovangizda keraksiz buyruqlar va funktsiyalar yo'qligiga ishonch hosil qiling va u paketlanishi kerak bo'lgan hamma narsaga ega.

Shundan so'ng, NetBeans -dagi loyiha nomini o'ng tugmasini bosing. Menyu ochilishi kerak. Xususiyatlarni bosing (menyuning eng pastki qismida), so'ngra yangi ochilgan menyuning chap tomonidagi "Paket" ni bosing. Endi, barcha tasdiqlash qutilari belgilanganligiga ishonch hosil qiling. Sizning ekraningiz yuqoridagi kabi bo'lishi kerak.

Buni qilganingizdan so'ng, NetBeans -dagi loyihangizni yana bir marta o'ng tugmasini bosing. Bu vaqtda "Tozalash va qurish" tugmachasini bosing, shunda NetBeans kutubxonalaringiz va fayllaringizni qabul qilib, ularni JAR -ning ishchi fayliga yig'ishni boshlaydi. Agar hamma narsa yaxshi bo'lsa, konsolda bir necha daqiqadan so'ng sizning JAR kompilyatsiya qilinganligi haqidagi xabarni ko'rishingiz kerak va endi faylni ishga tushirish mumkin. Ushbu dasturni ishga tushiring va hamma narsa ishlayotganiga ishonch hosil qiling. Agar shunday bo'lmasa, xatolarni tuzatmaguncha disk raskadrovka qiling va jarayonni qayta boshlang.

8 -qadam: tabriklaymiz

Tabriklaymiz! Agar siz barcha ko'rsatmalarni to'g'ri bajargan bo'lsangiz va hamma narsani yaxshi kodlagan bo'lsangiz, unda sizda o'zingizning ishchi ilovangiz bo'lishi kerak. Qizig'i shundaki, endi siz yoki sizning jadvalingizga kira oladigan har bir kishi ma'lumotlarni tahrir qilsa, sizning ilovangiz yangi ma'lumotlarni o'zgartirishi va ularga javob berishi mumkin bo'ladi. Mana, meniki qanday paydo bo'lganligi haqida tezkor video.

Agar siz takomillashtirish va qurishni davom ettirish yo'llarini izlayotgan bo'lsangiz, men sizning ilovangizga yuqori darajadagi grafiklarni qo'sha oladigan FancyText yoki FancyButton kabi JavaFX -ning ba'zi ilg'or xususiyatlarini tekshirishni maslahat beraman. Omad tilaymiz va agar sizga yordam kerak bo'lsa yoki mening kodimdagi xatoni sezsangiz, izoh qoldiring!

Tavsiya: