Basit Bir Java Grafik Kullanıcı Arayüzünü Kodlama

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.

instagram viewer

.

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ızca
    JPanel
    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
    ve
    JComboBox
    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ık
    fruitOptions
    dizi daha önce bildirildi.
  • Ekle()
    yöntemi
    JPanel
    grafiksel bileşenleri içine yerleştirir. bir
    JPanel
    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ürece
    JLabel
    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öntemi
    JButton
    . Bu yöntem,
    ActionListener
    class, etkinliği dinleyen sınıftır.
  • Sonra,
    ActionListener
    sınıfını kullanarak yeni bir nesne bildirerek
    yeni 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 şey
    SetVisible ()
    görünürlüğünü değiştirmek için
    JPanel
    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.