13: Windows va appletlarni yaratish Dizaynning asosiy printsipi "oddiy narsalarni oson va qiyin narsalarni mumkin qilish" dir . [61] Java 1.0 da grafik foydalanuvchi interfeysi (GUI) kutubxonasi dizaynining asosiy maqsadi dasturchiga barcha platformalarda yaxshi ko'rinadigan GUI yaratish imkonini berish edi.Bu maqsadga erishilmadi. Buning o'rniga, Java 1.0 ning Abstract Window Toolkit (AWT) barcha platformalarda juda piyodaga o'xshab ko'rinadigan grafik interfeysni taqdim etdi. Bundan tashqari, u cheklangan edi: siz faqat to'rtta shriftdan foydalanishingiz mumkin edi va siz operatsion tizimingizda topilgan murakkab va nozik GUI elementlariga kira olmadingiz. Java 1.0 AWT dasturlash modeli ham zaif va ob'ektga yo'naltirilgan emas edi. Mening seminarlarimning birida qatnashgan talaba (Java yaratish paytida Sunda bo'lgan) sababini tushuntirdi: AWT ning dastlabki versiyasi bir oy ichida kontseptsiyalangan, ishlab chiqilgan va amalga oshirilgan. Albatta, bu mahsuldorlik mo''jizasi va dizayn nima uchun juda muhimligini tushuntirish mavzusidir.
Java 1.1 AWT bilan hodisa modeli paydo bo'lishi bilan vaziyat yaxshilandi, u ancha aniq bo'ldi, JavaBeans qo'shilishi bilan birga ob'ektga yo'naltirilgan yondashuvdan foydalanildi va vizual dasturlash muhitini osongina yaratishga qaratilgan komponentli dasturlash modeliga ega edi. Java 2 eski Java 1.0 AWT dan o'tishni yakunladi va hamma narsani yaxshilab almashtirdi.Java Foundation Classes ( JFC ), GUIning bir qismi endi "Belanchak.” Endi siz (nihoyat) mamnun bo'lishingiz mumkin bo'lgan grafik interfeysni yaratish uchun sudrab olib tashlash va tashlash (qo'lda dasturlash bilan birga) mumkin bo'lgan turli xil foydalanish oson va tushunarli JavaBeans mavjud. Dasturiy ta'minot sanoatining "uchinchi qayta ko'rib chiqish" qoidasi (mahsulot uchinchi tahrirga qadar yaxshi deb hisoblanmaydi) dasturlash tillari uchun to'g'ri ko'rinadi.
Ushbu bob eng so'nggi Java 2 Swing kutubxonasini qamrab olmaydi, balki Swingni Java uchun GUI kutubxonasining yakuniy bosqichi deb hisoblaydi. Agar biron sababga ko'ra siz asl "eski" AWT kutubxonasidan foydalanishingiz kerak bo'lsa (chunki siz eski kodni qo'llab-quvvatlaysiz yoki brauzerda cheklovlar mavjud), ushbu tavsifni ushbu kitobning birinchi nashrida topishingiz mumkin, www.BruceEckel.com (shuningdek, kiritilgan) ushbu kitob bilan birga kelgan CD-ROMda).
Keyinchalik bu bobda siz applet yaratmoqchi bo'lganingizda va Swing-dan foydalanib oddiy dastur yaratmoqchi bo'lganingizda qanday farq qilishini va dastur va applet bo'lgan dasturni qanday yaratishni ko'rasiz. brauzerda yoki buyruq satridan ishga tushirilishi mumkin. Ushbu kitobdagi GUI misollarining deyarli barchasi applet yoki dastur sifatida bajarilishi mumkin.
Esda tutingki, bu barcha Swing komponentlarining to'liq ro'yxati yoki tavsiflangan sinflar uchun barcha usullar emas. Bu erda ko'rgan narsangiz oddiy bo'ladi. Swing kutubxonasi juda katta va bu bo'lim sizni kontseptsiyaning mohiyati va go'zalligi bilan tanishtirish uchun mo'ljallangan. Agar sizga ko'proq kerak bo'lsa, tadqiqotni amalga oshirishga tayyor bo'lsangiz, Swing sizga kerakli narsani beradi.
Bu yerda men Java kutubxonasi hujjatlarini java.sun.com dan HTML formatida yuklab olganingiz va oʻrnatganligingizni hisobga olaman va barcha tafsilotlar va usullarni koʻrish uchun ushbu hujjatning javax.swing sinflarini koʻrib chiqaman. Swing kutubxonasi. Swing dizaynining soddaligi tufayli siz bu erda muammoingizni hal qilish uchun etarli ma'lumot topasiz. Faqat Swing-ga bag'ishlangan juda ko'p (qalinroq) kitoblar mavjud va agar sizga ko'proq qamrov chuqurligi kerak bo'lsa yoki Swing-ning mahalliy xatti-harakatlarini o'zgartirmoqchi bo'lsangiz, ularga o'tishingiz mumkin.
Swingni o'rganganingizda quyidagilarni bilib olasiz:
Swing - bu boshqa tillarda va rivojlanish muhitlarida ko'rganingizdan ko'ra yaxshiroq dasturlash modeli. JavaBeans (kitob oxirida taqdim etiladi) kutubxonani boshqarish uchun ish maydonidir.
"GUI" (vizual dasturlash muhiti) quruvchilari to'liq huquqli Java ishlab chiqish muhitining jihatlariga qat'iy rioya qiladilar. JavaBeans va Swing dasturchiga grafik vositalar yordamida shaklga komponentlarni joylashtirganingizda siz uchun kod yozish imkonini beradi. Bu GUI-ni yaratishda nafaqat rivojlanishni tezlashtiradi, balki tajribani ko'paytirishga imkon beradi va shu bilan ko'proq dizaynlarni sinab ko'rish va oxir-oqibat eng yaxshisiga erishish imkonini beradi.
Swing-ning soddaligi va yaxshi ishlab chiqilgan tabiati shuni anglatadiki, agar siz kodni qo'lda yozishdan ko'ra GUI quruvchisidan foydalansangiz ham, natijada olingan kod tushunarli bo'ladi - bu o'qilmaydigan kodni osongina yaratadigan GUI quruvchilari bilan katta muammoni hal qiladi.
Swing zamonaviy foydalanuvchi interfeysida ko'rishni kutgan barcha komponentlarni o'z ichiga oladi, rasmlarni o'z ichiga olgan tugmalardan tortib daraxtlar va jadvallargacha. Bu katta kutubxona, lekin u qo'l ostidagi vazifalar uchun ma'lum miqdorda murakkablikka ega bo'lishi uchun mo'ljallangan - agar biror narsa oddiy bo'lsa, siz ko'p kod yozmaysiz, lekin agar siz murakkabroq narsani yaratmoqchi bo'lsangiz , kodingiz yanada murakkablashishi mumkin. Bu engil yondashuvni anglatadi, lekin agar kerak bo'lsa, siz kuchga ega bo'lasiz .
Swing-dan xohlagan narsani "foydalanishning ortogonalligi" deb atash mumkin. Ya'ni, kutubxonaning asosiy g'oyalarini tushunganingizdan so'ng, ularni hamma joyda qo'llashingiz mumkin. Asosan standart nomlash konventsiyasi tufayli, ko'pincha men ushbu misollarni yozganimda, men usul nomlarini taxmin qila oldim va qo'shimcha izlamasdan to'g'ri bo'ldim. Bu, albatta, yaxshi kutubxona dizaynining o'ziga xos belgisidir. Bundan tashqari, siz odatda komponentlarni boshqa komponentlarga kiritishingiz mumkin va narsalar to'g'ri ishlaydi.
Hamma narsa tezlik uchunKomponentlar"engil" va Swing portativlik uchun to'liq Java tilida yozilgan.
Klaviatura avtomatik ishlaydi - siz Swing ilovalarini sichqonchadan foydalanmasdan ishga tushirishingiz mumkin va u qo'shimcha dasturlashni talab qilmaydi. O'tkazishni qo'llab-quvvatlash oson emas - siz uni formangizga qo'shganingizda komponentingizni JScrollPane bilan o'rab olasiz. Maslahat vositasi kabi xususiyatlar odatda foydalanish uchun bir qator kodni talab qiladi.
Swing shuningdek, "sozlanishi mumkin bo'lgan ko'rinish va hissiyot" deb nomlangan radikal xususiyatlarni qo'llab-quvvatlaydi, ya'ni foydalanuvchi interfeysi turli platformalar va turli xil operatsion tizimlar uchun foydalanuvchi kutishlariga ko'ra dinamik ravishda o'zgarishi mumkin. O'z turingizni ixtiro qilish hatto mumkin (garchi qiyin bo'lsa ham).
Applet asoslari Java rivojlanishining maqsadlaridan biri veb-brauzer ichida ishlaydigan kichik dasturlar bo'lgan appletlarni yaratishdir . Ular xavfsiz bo'lishi kerakligi sababli, appletlar nima qilishlari mumkinligi cheklangan. Biroq, appletlar mijoz tomonidan dasturlashni qo'llab-quvvatlash uchun kuchli vosita bo'lib, Internetning asosiy qobiliyatidir.
Applet cheklovlari Dasturlash appletlari shunchalik cheklanganki, u ko'pincha "sinma qutisi ichida" sifatida ko'riladi, chunki sizda doimo kimdir, ya'ni Java ish vaqti xavfsizlik tizimi sizni kuzatib turadi.
Biroq, siz qum qutisidan qochib, appletlar emas, balki oddiy ilovalarni yozishingiz mumkin, bu holda siz OS ning boshqa xususiyatlariga kirishingiz mumkin. Biz kitob davomida muntazam ilovalar yozdik, lekin ular hech qanday grafik komponentlarsiz konsol ilovalari edi. Swing oddiy ilovalar uchun grafik interfeyslarni yaratish uchun ham ishlatilishi mumkin.
Odatda applet nima qilish uchun mo'ljallanganligini ko'rib chiqish orqali nima qilishga ruxsat berilganligi haqidagi savolga javob berishingiz mumkin: veb-sahifaning brauzerdagi funksiyalarini kengaytirish. Internetda bemaqsad bo'lgan odam sifatida siz hech qachon veb-sahifa sizga mos keladimi yoki yo'qligini bilmasligingiz sababli, sizga ishlash uchun xavfsiz kod kerak bo'ladi. Shunday qilib, ehtimol siz katta cheklovlarni sezasiz: