Bölüm 8 · SimülatörSwing Yerleşim Yöneticileri? ← Bölüm 8JFrame1. Fareişletim sistemi tıklamayı bildirir2. EventQueueolay kuyruğa girer3. EDTolay dağıtım iş parçacığı alır4. ActionEventdüğme olayı üretir5. DinleyiciactionPerformed(e) KapatSwing Yerleşim YöneticileriAmaç: Bir kabın (JPanel) içindeki bileşenlerin konum ve boyutunu kabın yerleşim yöneticisinin hesapladığını görmek; pencere boyutu değişince yerleşimin yeniden yapıldığını ve bir düğme tıklamasının dinleyiciye nasıl ulaştığını izlemek.YerleşimlerFlowLayout (JPanel'in varsayılanı): bileşenleri tercih edilen boyutlarıyla soldan sağa dizer, satır dolunca alt satıra geçer, her satırı ortalar; aralıklar 5 piksel.BorderLayout (JFrame içerik bölmesinin varsayılanı): NORTH ve SOUTH tam genişlik, tercih edilen yükseklik; WEST ve EAST tercih edilen genişlik, kalan yükseklik; CENTER geriye kalan her yeri alır. Her bölgede tek bileşen olur.GridLayout(satır, sütun, 5, 5): bütün hücreler eşit boyutludur; satır sayısı 0'dan büyükse sütun sayısı bileşen sayısından hesaplanır. Bileşenler hücreyi doldurur.BoxLayout: bileşenleri tek sütunda (Y) ya da tek satırda (X) art arda koyar. Düğmeler en fazla tercih edilen boyutlarına uzar; Y ekseninde sola, X ekseninde dikeyde ortaya hizalanır. Sığmayan kısım kesilir.OlaylarTıklama önce olay kuyruğuna (EventQueue) girer; olay dağıtım iş parçacığı (EDT) onu düğmeye iletir, düğme bir ActionEvent üretir ve addActionListener ile kayıtlı her dinleyicinin actionPerformed(e) metodunu çağırır. Kayıtlı dinleyici yoksa olay üretilir ama hiçbir kod çalışmaz.Nasıl kullanılır?Yerleşimi seçin, Ekle / Kaldır ile düğme ekleyin; BorderLayout'ta bölgeyi, GridLayout'ta satır ve sütunu seçin.G ve Y kaydırıcılarıyla içeriğin boyutunu değiştirin; yerleşim anında yeniden hesaplanır.Penceredeki bir düğmeye tıklayın: alttaki şerit olayın yolunu adım adım gösterir.Kendini dene: yeni bir boyut için yerleşimin sonucunu tahmin edin.Düğmelerin tercih edilen boyutu burada metin uzunluğundan basitçe hesaplanır (26 + 8 × harf sayısı piksel genişlik, 26 piksel yükseklik). Aynı tercih edilen boyutlarla gerçek Java 8 FlowLayout, BorderLayout, GridLayout ve BoxLayout sınıflarının hesapladığı konumlar, 345 farklı boyut ve bileşen sayısı için bu sayfanın hesabıyla birebir aynı çıkmıştır.İlgili sunum: Bölüm 8 · Grafikler (Yerleşim Yöneticisi, BorderLayout, JButton Sınıfı, ActionListener).