Kullanılarak oluşturulan bir grafik kullanıcı arayüzü (GUI) Java NetBeans platformu birkaç kap katmanından oluşur. İlk katman, uygulamayı bilgisayarınızın ekranında hareket ettirmek için kullanılan penceredir. Bu üst düzey kap olarak bilinir ve görevi diğer tüm kaplara ve grafik bileşenlere çalışılacak bir yer vermektir. Genellikle bir masaüstü uygulaması için, bu üst düzey kapsayıcı,
sınıf.
Karmaşıklığına bağlı olarak GUI tasarımınıza istediğiniz sayıda katman ekleyebilirsiniz. Grafik bileşenleri (ör. Metin kutuları, etiketler, düğmeler) doğrudan
veya diğer kaplarda gruplayabilirsiniz.
GUI katmanları çevreleme hiyerarşisi olarak bilinir ve bir soy ağacı olarak düşünülebilir. Eğer
en üstte oturan büyükbabadır, o zaman bir sonraki konteyner baba ve çocuk olarak sahip olduğu bileşenler olarak düşünülebilir.
Bu örnek için,
iki içeren
ve bir
. İlk
tutacak
ve
. İkinci
tutacak
ve bir
. Sadece bir
(ve dolayısıyla içerdiği grafik bileşenleri) her seferinde görünür olacaktır. Düğme, ikisinin görünürlüğünü değiştirmek için kullanılacaktır.
.
NetBeans kullanarak bu GUI'yi oluşturmanın iki yolu vardır. Birincisi, bu makalede açıklanan GUI'yi temsil eden Java kodunu el ile yazmaktır. İkincisi, Salıncak GUI'leri oluşturmak için NetBeans GUI Builder aracını kullanmaktır.
GUI oluşturmak için Swing yerine JavaFX kullanma hakkında bilgi için bkz. JavaFX nedir?
Not: Bu proje için kodun tamamı şurada: Basit Bir GUI Uygulaması Oluşturmak İçin Örnek Java Kodu.
NetBeans Projesini Kurma
Yeni bir tane oluştur Java NetBeans'te ana sınıf uygulama projesi Projeyi arayacağız
Kontrol Noktası: NetBeans'ın Projeler penceresinde üst düzey bir GuiApp1 klasörü olmalıdır (ad kalın yazı tipinde değilse, klasörü sağ tıklayın ve
). Altında
klasöründe bir Kaynak Paketleri klasörü olmalıdır.
GuiApp1 denir. Bu klasör adlı ana sınıfı içerir
.java.
Herhangi bir Java kodu eklemeden önce, aşağıdaki içe aktarmaları
sınıfı, arasında
çizgi ve
:
Bu ithalatlar, bu GUI uygulamasını yapmak için ihtiyaç duyduğumuz tüm sınıfların bizim için kullanılabilir olacağı anlamına gelir.
Ana yöntemde şu kod satırını ekleyin:
Bu, yapılacak ilk şeyin yeni bir
nesne. Sadece bir sınıfa ihtiyacımız olduğu için, örneğin programlar için hoş bir kısayol. Bunun çalışması için,
sınıf, yeni bir yöntem ekleyin:
Bu yöntemde, GUI'yi oluşturmak için gereken tüm Java kodunu koyacağız, yani şu andaki her satırın
yöntem.
Tasarım Notu: Sınıfı gösteren Java kodunu görmüş olabilirsiniz (ör.
) genişletilmiş
. Bu sınıf daha sonra bir uygulama için ana GUI penceresi olarak kullanılır. Normal bir GUI uygulaması için bunu yapmaya gerek yoktur. Genişletmek istediğiniz tek zaman
daha spesifik bir tür
(şuna baksana
alt sınıf oluşturma hakkında daha fazla bilgi için).
Daha önce de belirtildiği gibi, GUI bir uygulama penceresi
. Oluşturmak için
nesne,
yapıcı:
Ardından, şu dört adımı kullanarak GUI uygulama penceremizin davranışını ayarlayacağız:
1. Kullanıcı pencereyi kapattığında uygulamanın arka planda bilinmeyen bir şekilde çalışmaya devam etmemesi için kapatıldığından emin olun:
2. Pencerede boş bir başlık çubuğu olmaması için pencere için bir başlık ayarlayın. Bu satırı ekle:
3. Pencere boyutunu, içine yerleştirdiğiniz grafik bileşenlerine uyacak şekilde boyutlanacak şekilde ayarlayın.
Tasarım Notu: Pencerenin boyutunu ayarlamak için alternatif bir seçenek,
yöntemi
sınıf. Bu yöntem, içerdiği grafik bileşenlerine göre pencerenin boyutunu hesaplar. Bu örnek uygulamanın pencere boyutunu değiştirmesi gerekmediğinden,
yöntem.
4. Pencereyi bilgisayar ekranının ortasında görünecek şekilde ortalayın, böylece ekranın sol üst köşesinde görünmez:
İki JPaneli Ekleme
Buradaki iki çizgi değerler için
ve
kısaca oluşturacağımız nesneleri
diziler. Bu, bu bileşenler için bazı örnek girişleri doldurmayı kolaylaştırır:
İlk JPanel Nesnesini Oluşturma
Şimdi, ilkini
nesne. Bir
ve bir
. Üçü de yapıcı yöntemleri ile oluşturulur:
Yukarıdaki üç satıra ilişkin notlar:
-
JPanel
değişken bildirildi nihai. Bu, değişkenin yalnızcaJPanel
bu satırda yaratıldı. Sonuç, değişkeni bir iç sınıfta kullanabilmemizdir. Neden daha sonra kodda yer almak istediğimiz belli olacak. -
JLabel
veJComboBox
grafik özelliklerini ayarlamak için kendilerine aktarılan değerler vardır. Etiket "Meyveler:" olarak görünür ve birleşik giriş kutusu artıkfruitOptions
dizi daha önce bildirildi. -
Ekle()
yöntemiJPanel
grafiksel bileşenleri içine yerleştirir. birJPanel
FlowLayout'u varsayılan olarak kullanır mizanpaj yöneticisi. Etiketin birleşik giriş kutusunun yanına oturmasını istediğimiz için bu uygulama için sorun yok. Eklediğimiz süreceJLabel
ilk olarak, iyi görünecek:
İkinci JPanel Nesnesini Oluşturma
İkinci
aynı modeli izler. Ekleyeceğiz
ve bir
ve bu bileşenlerin değerlerini "Sebzeler:" ve ikincisi olarak ayarlayın
dizi
. Diğer tek fark,
gizleme yöntemi
. Unutmayın ki bir
ikisinin görünürlüğünü kontrol etmek
. Bunun işe yaraması için başlangıçta görünmez olması gerekir. İkinci satırı ayarlamak için bu satırları ekleyin
:
Yukarıdaki kodda kayda değer bir satır,
yöntemi
.
değeri, listenin içerdiği öğeleri iki sütunda görüntülemesini sağlar. Buna "gazete stili" denir ve daha geleneksel bir dikey sütun yerine öğelerin bir listesini görüntülemek için iyi bir yoldur.
Son rötuşlar ekleme
Gereken son bileşen
görünürlüğünü kontrol etmek
s. Değerinde iletilen değer
yapıcı düğmenin etiketini ayarlar:
Olay dinleyicisi tanımlanmış olan tek bileşendir. Bir kullanıcı grafiksel bir bileşenle etkileşime girdiğinde "olay" oluşur. Örneğin, bir kullanıcı bir düğmeyi tıklar veya metin kutusuna metin yazarsa, bir olay oluşur.
Bir olay dinleyicisi, uygulamaya olay gerçekleştiğinde ne yapması gerektiğini söyler.
ActionListener sınıfını kullanıcı tarafından bir düğme tıklamasını "dinlemek" için kullanır.
Etkinlik Dinleyicisini Oluşturma
Bu uygulama, düğme tıklandığında basit bir görev gerçekleştirdiğinden, olay dinleyicisini tanımlamak için anonim bir iç sınıf kullanabiliriz:
Bu korkunç bir kod gibi görünebilir, ancak neler olduğunu görmek için onu yıkmanız yeterlidir:
- İlk olarak,
addActionListener
yöntemiJButton
. Bu yöntem,ActionListener
class, etkinliği dinleyen sınıftır. - Sonra,
ActionListener
sınıfını kullanarak yeni bir nesne bildirerekyeni ActionListener ()
ve daha sonra, süslü parantez içindeki tüm kod olan anonim bir iç sınıf sağlamak. - Anonim iç sınıfın içine,
actionPerformed ()
. Düğme tıklatıldığında çağrılan yöntem budur. Bu yöntemde gerekli olan tek şeySetVisible ()
görünürlüğünü değiştirmek içinJPanel
s.
JPanels'i JFrame'e ekleme
Son olarak, ikisini
s ve
-e
. Varsayılan olarak, bir
BorderLayout mizanpaj yöneticisini kullanır. Bu, beş alanın (üç sıra boyunca) olduğu anlamına gelir.
grafik bir bileşen içerebilir (KUZEY, {BATI, MERKEZ, DOĞU}, GÜNEY). Bu alanı,
yöntem:
JFrame'i Görünür Olarak Ayarlayın
Son olarak, yukarıdaki kodun tümü,
görünür olmak için:
Şimdi uygulama penceresini görüntülemek için NetBeans projesini çalıştırmaya hazırız. Düğmeye tıklamak, birleşik giriş kutusunu veya listeyi gösterme arasında geçiş yapar.