Temir yo‘l kassasida,chipta sotish va bo‘sh o‘rinlar hisobi
import javax.swing.*;
public class Hello extends JFrame {
public Hello() {
super("Hello World");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
add(new JLabel("Hello, world!"));
pack();
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(Hello::new);
}
}
8-rasm. Dastur natijasi.
Dasturda import javax.swing paketdagi barcha umumiy sinflar va interfeyslarni o‘z ichiga oladi. Hello sinfi JFrame sinfini kengaytiradi; JFrame klassi sarlavha satri va yaqin boshqaruvga ega oynani amalga oshiradi. Hello() konstruktori birinchi navbatda super klass konstruktorini chaqirib, oynaning sarlavhasi sifatida foydalaniladigan "Hello" parametrini o‘tkazib, oynani ishga tushiradi. Keyin sarlavha satrida yopish boshqaruvi WindowConstants ga tanlanganda standart amalni o‘rnatish uchun JFrame'dan meros bo‘lib qolgan setDefaultCloseOperation(int) usulini chaqiradi. yashirin), bu Java virtual mashinasidan chiqish va dasturni tugatish imkonini beradi. Keyin “Salom, dunyo!” qatori uchun JLabel yaratiladi. va Konteyner superklassidan meros bo‘lib qolgan add(Component) usuli yorliqni ramkaga qo‘shish uchun chaqiriladi. Window superklassidan meros bo‘lib qolgan pack() usuli oynani o‘lchamini va uning tarkibini joylashtirish uchun chaqiriladi.
Main() metodi dastur ishga tushganda Java virtual mashinasi tomonidan chaqiriladi. U yangi Hello oynasini yaratadi va uni mantiqiy parametri true bilan Komponent supersinfidan meros qilib olingan setVisible(boolean) metodini chaqirish orqali ko‘rsatishga olib keladi. Kod konstruktorni AWT hodisasi jo‘natish ipidan chaqirish uchun invokeLater (Runnable) usulidan foydalanadi, bu kodning xavfsiz tarzda bajarilishini ta’minlaydi. Oyna ko‘rsatilgandan so‘ng, asosiy metoddan chiqish dasturni to‘xtatib qo‘ymaydi, chunki jarayonni jo‘natish chizig‘i Swing yuqori darajadagi barcha oynalari yo‘q qilinmaguncha faol qoladi.