|
O‘zbekiston respublikasi maktabgacha va maktab ta’limi vazirligi abdulla avloniy nomidagi pedagoglarni kasbiy rivojlantirish va yangi metodikalarga o‘rgatish
|
bet | 9/14 | Sana | 29.12.2023 | Hajmi | 59,62 Kb. | | #129009 |
Bog'liq BMI Bo\'ronov Azamat
Tugmalarni yaratish juda oddiy: siz shunchaki JButton konstruktorini tugmachaga joylashtirmoqchi bo'lgan yorliq bilan chaqirasiz. Keyinchalik siz tugmachaga grafik qo'yish kabi ajoyib narsalarni qilishingiz mumkinligini ko'rasiz.
Odatda sinfingiz ichida tugma uchun maydon yaratishingiz kerak bo'ladi, shunda siz undan keyinroq kirishingiz mumkin.
JButton - bu yangilanishning bir qismi sifatida avtomatik ravishda qayta chiziladigan komponent - bir xil kichik oyna. Bu shuni anglatadiki, siz tugmachada yoki biron bir boshqaruvda aniq qayta chizishni chaqirishingiz shart emas; Siz uni formaga joylashtirasiz va unga avtomatik ravishda uning qayta chizilishi haqida g'amxo'rlik qilishga ruxsat berasiz. Shaklga tugmani joylashtirish uchun buni init( ) ichida bajarishingiz kerak :
//: c13:Button1.java
// Tugmani appletga joylashtiring.
//
import javax.swing.*;
import java.awt.*;
import com.bruceeckel.swing.*;
umumiy sinf Button1 JApplet- ni kengaytiradi {
JButton
b1 = yangi JButton ( "1-tugma" ),
b2 = yangi JButton( "2-tugma" );
public void init() {
Konteyner cp = getContentPane();
cp.setLayout( yangi FlowLayout());
cp.add(b1);
cp.add(b2);
}
umumiy statik void main(String[] args) {
Console.run( new Button1(), 200, 50);
}
} ///:~
Bu erda yangi narsa qo'shildi: har qanday elementni o'z ichiga olgan panelga joylashtirishdan oldin, FlowLayout tipidagi yangi "tartib boshqaruvchisi" yaratiladi . Joylashtirish menejeri - bu panel boshqaruvni shakldagi qayerga joylashtirishni hal qilish usuli. Appletning BorderLayout dan foydalanishi odatiy holdir , lekin bu yerda ishlamaydi, chunki (bu bobda keyinroq bilib olasiz, bu yerda forma boshqaruvi batafsilroq koʻrib chiqiladi) u qoʻshilganda har bir yangi boshqaruvni birlamchi qoʻshib qoʻyadi. Biroq, FlowLayout - bu boshqaruv elementlari shakl bo'ylab chapdan o'ngga va yuqoridan pastgacha teng ravishda suzishining sababidir.
Agar siz dasturni kompilyatsiya qilsangiz va yuqoridagi appletni ishga tushirsangiz, tugmani bosganingizda hech narsa sodir bo'lmasligini sezasiz. Buning sababi, nima bo'lganini aniqlash uchun borib, ba'zi kod yozishingiz kerak. uchun asosGUI o'z ichiga olgan narsalarning ko'p qismini o'z ichiga olgan voqealarga asoslangan dasturlash ushbu hodisalarga javob beradigan majburiy koddir.
Swing-da buni amalga oshirish usuli interfeysni (grafik komponentlar) va amalga oshirishni (komponentdan voqea sodir bo'lganda ishlatmoqchi bo'lgan kod) aniq ajratishdir . Har bir Swing komponenti uning ichida sodir bo'lishi mumkin bo'lgan barcha xabarlarni yuborishi mumkin va u har bir hodisani alohida yuborishi mumkin. Shunday qilib , masalan , sichqonchaning tugma ustida harakatlanishiga ahamiyat bermasangiz, bu hodisani ro'yxatdan o'tkazmaysiz. Bu voqealarga asoslangan dasturlashni boshqarishning juda oddiy va nafis usuli va siz asosiy tushunchani tushunganingizdan so'ng, siz ilgari ko'rmagan Swing komponentlaridan bemalol foydalanishingiz mumkin - aslida bu model, deb tasniflanishi mumkin bo'lgan hamma narsani qamrab oladi. JavaBean (buni keyinroq ushbu bobda bilib olasiz).
Birinchidan, biz foydalanadigan komponentda bizni qiziqtirgan asosiy voqeaga e'tibor qaratamiz. JButton bo'lsa , bu "qiziqarli voqea" tugmani bosishdir. Tugmani bosishga qiziqishingizni qayd etish uchun JButton sinfining addActionListener( ) usulini chaqirasiz . Bu usul argumentni kutadi, ya'ni ActionListener interfeysini amalga oshiradigan ob'ekt , actionPerformed() deb nomlangan yagona usulni o'z ichiga oladi . Shunday qilib, JButton- ga kod biriktirish uchun faqat ActionListener interfeysini sinfda amalga oshirish va addActionListener() orqali JButton bilan ushbu sinf ob'ektini ro'yxatdan o'tkazish kerak bo'ladi . Usul tugma bosilganda chaqiriladi (bu odatda chaqiriladiqayta qo'ng'iroq qilish ).
Lekin tugmani bosish natijasi qanday bo'lishi kerak? Biz ekranda ba'zi o'zgarishlarni ko'rishni xohlaymiz, shuning uchun yangi Swing komponentini kiritamiz: JTextField . Bu erda matnni chop etish mumkin yoki bizning holatlarimizda matnni dastur tomonidan o'zgartirish mumkin. JTextField ni yaratishning bir necha usullari mavjud bo'lsa-da , eng oddiyi konstruktorga matn maydoni uchun kerakli kenglikni aytishdir. JTextField formaga joylashtirilgandan so'ng siz setText( ) usuli yordamida tarkibni o'zgartirishingiz mumkin ( JTextField da ko'plab boshqa usullar mavjud , ammo ularni java.sun.com saytidagi JDK uchun HTML hujjatlarida qidirishingiz kerak ). Bu shunday ko'rinadi:
//: c13:Button2.java
// Tugmani bosishga javob.
//
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import com.bruceeckel.swing.*;
umumiy sinf Button2 JApplet- ni kengaytiradi {
JButton
b1 = yangi JButton ( "1-tugma" ),
b2 = yangi JButton( "2-tugma" );
JTextField txt = yangi JTextField(10);
BL klassi ActionListenerni amalga oshiradi {
public void actionPerformed(ActionEvent e){
String nomi =
((JButton)e.getSource()).getText();
txt.setText(nom);
}
}
BL al = yangi BL();
public void init() {
b1.addActionListener(al);
b2.addActionListener(al);
Konteyner cp = getContentPane();
cp.setLayout( yangi FlowLayout());
cp.add(b1);
cp.add(b2);
cp.add(txt);
}
umumiy statik void main(String[] args) {
Console.run( new Button2(), 200, 75);
}
} ///:~
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
O‘zbekiston respublikasi maktabgacha va maktab ta’limi vazirligi abdulla avloniy nomidagi pedagoglarni kasbiy rivojlantirish va yangi metodikalarga o‘rgatish
|