Ankara
0 (312) 276 75 93
info@billgatesweb.com

Bileşenleri Gruplandırma – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Web Danışmanlık Hizmeti, Seo Hizmeti Al, Mobile Uygulama Yaptır, Back Link Satın Al, Blog Yazdırmak İstiyorum, Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma, Akademik Danışmanlık, Tercüme Danışmanlık

Bileşenleri Gruplandırma – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Mobil İçerik Kullanımı

Bileşenleri Gruplandırma

Bileşenleri bir arada gruplandırmak için Swing’in sağladığı birkaç bileşene göz atacağız. AWT’de, bu tür bileşenler java.awt.Container’ı genişletti ve Panel, Pencere, Çerçeve ve İletişim Kutusunu içeriyordu. Swing ile daha fazla esneklik ve güç sağlayan yepyeni bir dizi seçeneğe sahip olursunuz.

Buradaki her şey, AWT muadilinden daha karmaşık değildir. Bu iddianın kanıtı olarak, çok basit bir Swing konteyneri olan JPanel sınıfına bir göz atarak bölüme başlayacağız.

JPanel, diğer bileşenleri bir arada gruplamak için kullanılan bir JComponent uzantısıdır (hatırlayın, java.awt.Container’ı genişletir). Uygulamasının çoğunu üst sınıflarından alır.

Tipik olarak, JPanel’i kullanmak, onu başlatmak, bir düzen yöneticisi ayarlamak (bu, yapıcıda ayarlanabilir ve varsayılan olarak bir FlowLayout’a ayarlanabilir) ve Container’dan devralınan add() yöntemlerini kullanarak bileşenler eklemek anlamına gelir.

İşte bir JPanel’in opak olmasının ne anlama geldiğini gösteren basit bir program. Tek yaptığımız iki JPanel oluşturmak. İlk JPanel’in içine opak olan başka bir JPanel yerleştiriyoruz. İkincisinde şeffaf (opak olmayan) bir JPanel yerleştiriyoruz.

Her iki durumda da dış panelin arka planını beyaz ve iç panelin arka planını siyah olarak ayarladık. Biraz boyut vermek için her iç panelin içine bir JButton yerleştireceğiz.

Solda beyazın içinde siyah paneli görüyoruz. Ancak sağda, iç panel opak olmadığı için siyah arka planı asla boyanmaz ve dış panelin arka planı görünür.

Kutu Sınıfı

Bir başka çok kullanışlı Swing konteyneri de Box’tır. Bir Kutu, bir dizi bileşeni uçtan uca yerleştirmeyi kolaylaştırır. Özel bir yeni düzen yöneticisi (BoxLayout) tarafından desteklendiğinden, daha sonra ele alacağız.

Kök Bölmesi

Artık bir Swing konteynerinin en basit örneğini gördüğümüze göre, biraz daha güçlü bir şeye geçeceğiz. Diğer Swing kapsayıcılarının çoğu (JFrame, JApplet, JWindow, JDialog ve hatta JInternalFrame), tek bileşenleri olarak başka bir sınıfın, JRootPane’in bir örneğini içerir ve ortak bir arabirim olan RootPaneContainer’ı uygular. Bu bölümde, JRootPane ve RootPaneContainer’ın yanı sıra JRootPane’in kullandığı başka bir sınıf olan J Layered Pane’e bakacağız.

Bu sınıfların açıklamalarına geçmeden önce, Swing kök kaplarını oluşturan sınıfların ve arabirimlerin nasıl bir araya geldiğine bir göz atalım.

JApplet, JFrame, JDialog ve JWindow’un JComponent’i diğer Swing bileşenleri gibi genişletmediğini gösterir. Bunun yerine, üst düzey kullanıcı arayüzü pencereleri olarak hizmet veren AWT muadillerini genişletirler. Bu, bu bileşenlerin (hafif Swing bileşenlerinden farklı olarak) yerel AWT eş nesnelerine sahip olduğu anlamına gelir.

Bu Swing kapsayıcılarının (JInternalFrame’in yanı sıra) ortak bir arabirim olan Root Pane Container uyguladığına dikkat edin. Bu, JRootPane’in özelliklerine erişim sağlayan bir arayüzdür. Ayrıca, beş kapsayıcının her biri, kap tarafından yönetilen alt bileşenlerin “gerçek” kapsayıcısı olarak bir JRootPane kullanır. Bu sınıf, bu bölümde daha sonra tartışılacaktır.

J Kök Bölmesi Sınıfı

J Root Pane, JComponent’i genişleten ve diğer birçok Swing konteyneri tarafından kullanılan özel bir konteynerdir. Muhtemelen kullanmaya alışkın olduğunuz çoğu konteynerden oldukça farklıdır.

JRootPane hakkında anlaşılması gereken ilk şey, sabit bir dizi bileşen içermesidir: cam bölme adı verilen bir Bileşen ve mantıksal olarak katmanlı bölme adı verilen JLayeredPane. Ayrıca, katmanlı bölme iki bileşen daha içerir: aJMenuBarandaContaineradlı içerikpanesi. Bir JRootPane yapısının şematik bir görünümünü gösterir.


Java yükleyemiyorum
Windows 10 Java çalışmıyor
Application Error hatası
İllegalstateexception nedir
Java Security
İnstall4j sihirbazı sisteminizde Java tm Runtime Environment birimi bulunamadı
Windows 11 Java Sorunu
Java Runtime bulunamadı hatası


Bir JRootPane’e ek bileşenler ekleme girişimleri, özel düzen yöneticisi (RootLayout adlı bir korumalı iç sınıf) tarafından yoksayılır.

Bunun yerine, kök bölmelerin çocukları içerik bölmesine eklenmelidir. Aslında, JRootPane’in çoğu kullanımı için tek yapmanız gereken içerik bölmesini almak ve bileşenlerinizi buna eklemektir. İşte içerik bölmesine tek bir düğme ekleyen basit bir örnek (bir JFrame kullanarak).

Bu, sadece bir çerçeveye bir şey eklemek için çok fazla karmaşıklık gibi görünebilir. Neyse ki, bir sonraki bölümde göreceğimiz gibi, JRootPane kullanan kapların her biri, kökün alt bileşenlerinin her birine doğrudan erişim sağlayan RootPaneContainer arabirimini uygular. Bu, “XXX” ile işaretlenmiş üç satırın ile değiştirilmesine izin verir.

Bu durumda, getRootPane() ve setJMenuBar() çağrıları, tek bir f.setJMenuBar(bar) çağrısıyla değiştirilebilirdi. Swing kapsayıcılarındaki menubar özelliğinin JMenuBar olarak adlandırıldığını unutmayın.

Önceki iki kök bölme örneği, size JRootPane’in gerçekte nasıl çalıştığını anlamanız için verilmişti. Ancak, genellikle kodunuz doğrudan JRootPane ile çalışmaz. RootPaneContainer tartışmasına geldiğimizde nedenini daha iyi anlayacağız. Şimdilik, bu kodu gerçekten nasıl yazacağınızı gösteren son örneğin bir versiyonudur.

JRootPane ilk bakışta biraz kafa karıştırıcı görünebilir. Unutulmaması gereken önemli şey, çoğu durumda tek endişelenmeniz gereken bileşeninizi içerik bölmesine eklemek ve muhtemelen bir menü çubuğu ayarlamaktır. Bu bölümde, JRootPane’in içerdiği diğer bileşeni açıklayacağız: “cam bölme.”

Cam bölme, bölmenin tamamını dolduracak şekilde yerleştirilmiş bir bileşendir. Varsayılan olarak, JPanel’in bir örneğidir, ancak herhangi bir Bileşen ile değiştirilebilir. JRootPane’in addImpl() yöntemini uygulaması, cam bölmenin kaptaki ilk bileşen olmasını sağlar, yani en son boyanacaktır.

Başka bir deyişle, cam bölme, bileşenleri bölmedeki diğer bileşenlerin “üzerine” yerleştirmenize olanak tanır. Bu nedenle, cam levhanın opak olmaması genellikle mantıklıdır; aksi takdirde, katmanlı bölmedeki her şeyi kapsayacaktır.

JRootPane’in düzeni gerçekleştirildiğinde, cam bölmenin içeriğinin yerleştirilmesinin, katmanlı bölmenin (ve onun içerik bölmesinin) içeriğinin yerleşimi üzerinde hiçbir etkisinin olmayacağını unutmamak önemlidir.

Her iki bileşen seti de aynı bileşen alanı içine yerleştirilir ve gerektiğinde birbiri üzerine biner. Giriş alma söz konusu olduğunda çeşitli bölmelerdeki bileşenlerin hepsinin eşit olduğunun farkına varmak da önemlidir: fare olayları, bölmenin hangi bölümünde olursa olsun, JRootPane’deki herhangi bir bileşene gönderilir.

Bu son not bize cam bölmenin ortak bir kullanımını getiriyor – diğer bileşenlerden gelen fare olaylarını engelliyor. Kural olarak, bileşenler üst üste yerleştirilmişse, fare olayları “üst” bileşene gönderilir. Üst bileşen kayıtlı fare dinleyicilerine sahipse, olaylar kapsanan bileşenlere gönderilmez. Bir sonraki bölümde, JInternalFrame’in bu teknikten nasıl yararlandığını göreceğiz.

Şimdilik, kök bölme içeriğinin geri kalanının üzerinde tek bir düğme görüntülemek için cam bölmeyi kullandığımız bir örneğe bakacağız.  Cam bölmedeki “başlat” düğmesine basıldığında, cam bölme kaldırılarak alttaki bileşenlerin tekrar kullanılması sağlanır. Bu örneğin özellikle yararlı olması amaçlanmamıştır. 


Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır. 

1) Backlink Paketi  50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)


 

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

× Bize Whatsapp'tan Ulaşın