what is java awt
Bu Java AWT öğreticisi, Java'da Soyut Pencere Araç Seti'nin ne olduğunu ve AWT Renk, Nokta, Grafikler, AWT ve Swing gibi ilgili kavramları açıklar:
Daha önceki eğitimlerimizden birinde temel GUI terimlerini tanıttık. Bu eğitimde, Java'daki en eski GUI çerçevelerinden birini 'AWT Framework' olarak tartışacağız. AWT, 'Abstract Window Toolkit' in kısa formudur.
AWT, Java'da GUI uygulamaları oluşturmak için bir API'dir. Platforma bağlı bir çerçevedir, yani AWT'ye ait GUI bileşenleri tüm platformlarda aynı değildir. Platformun yerel görünümü ve hissine göre, AWT bileşenlerinin görünümü ve verdiği his de değişir.
=> TÜM Java Öğreticilerini Buradan Kontrol Edin.
Ne öğreneceksin:
JAVA AWT (Özet Pencere Araç Seti)
Java AWT, yerel platformların alt yordamlarını çağırarak bileşenler oluşturur. Bu nedenle, bir AWT GUI uygulaması, Windows ve Mac OS üzerinde çalışırken Windows işletim sistemi görünümüne ve hissine sahip olacaktır. Bu, Abstract Window Toolkit uygulamalarının platform bağımlılığını açıklar.
Platform bağımlılığı ve bileşenlerinin bir tür ağır yapısı nedeniyle, bugünlerde Java uygulamalarında nadiren kullanılmaktadır. Ayrıca, Swing gibi hafif ve platformdan bağımsız yeni çerçeveler de vardır.
Swing, AWT'ye göre daha esnek ve güçlü bileşenlere sahiptir. Swing, Abstract Window Toolkit'e benzer bileşenler sağlar ve ayrıca ağaçlar, sekmeli paneller vb. Gibi daha gelişmiş bileşenlere sahiptir.
Ancak burada dikkat edilmesi gereken bir nokta şudur: Java Swing çerçevesi AWT'ye dayanmaktadır. Başka bir deyişle, Swing gelişmiş bir API'dir ve Özet Pencere Araç Seti çerçevesini genişletir. Bu yüzden, Swing eğitimlerine geçmeden önce, bu çerçeveye genel bir bakış atalım.
AWT Hiyerarşisi ve Bileşenleri
Şimdi Java'daki Özet Pencere Araç Seti hiyerarşisinin nasıl göründüğüne bakalım.
Aşağıda, Java'daki AWT hiyerarşisinin diyagramı verilmiştir.
Yukarıdaki şekilde gösterildiği gibi, kök AWT bileşeni 'Bileşen', 'Nesne' sınıfından uzanır. Bileşen sınıfı, Etiket, Düğme, Liste, Onay Kutusu, Seçim, Kap vb. Dahil olmak üzere diğer bileşenlerin üst öğesidir.
Bir kap ayrıca panellere ve pencerelere bölünmüştür. Bir Applet sınıfı Panel'den türetilirken, Çerçeve ve İletişim Kutusu Pencere bileşeninden türetilir.
Şimdi bu bileşenleri kısaca tartışalım.
Bileşen Sınıfı
Bileşen sınıfı, hiyerarşinin köküdür. Bileşen soyut bir sınıftır ve mevcut arka plan ve ön plan renklerinin yanı sıra mevcut metin yazı tipinden sorumludur.
Bileşen sınıfı, görsel bileşen özelliklerini ve özniteliklerini kapsüller.
Konteyner
Konteyner AWT bileşenleri metin, etiketler, düğmeler, tablolar, listeler vb. Gibi diğer bileşenleri içerebilir. Konteyner, GUI'ye eklenen diğer bileşenlere ilişkin bir sekme tutar.
Panel
Panel, Container sınıfının bir alt sınıfıdır. Panel somut bir sınıftır ve başlığı, sınırı veya menü çubuğunu içermez. Diğer bileşenleri tutmak için bir kaptır. Bir çerçeve içinde birden fazla panel olabilir.
Window sınıfı
Windows sınıfı, en üst düzeyde bir penceredir ve bir pencere oluşturmak için çerçeveler veya iletişim kutuları kullanabiliriz. Bir pencerenin kenarlıkları veya menü çubukları yoktur.
Çerçeve
Çerçeve, Window sınıfından türetilir ve yeniden boyutlandırılabilir. Çerçeve, düğme, etiketler, alanlar, başlık çubuğu vb. Gibi çeşitli bileşenler içerebilir. Çerçeve Özet Pencere Araç Seti uygulamalarının çoğunda kullanılır.
en iyi ücretsiz konferans görüşmesi hizmeti 2020
Bir çerçeve iki şekilde oluşturulabilir:
# 1) Frame sınıfı nesnesini kullanarak
Burada Frame sınıfını somutlaştırarak bir Frame sınıfı nesnesi oluşturuyoruz.
Aşağıda bir programlama örneği verilmiştir.
import java.awt.*; class FrameButton{ FrameButton (){ Frame f=new Frame(); Button b=new Button('CLICK_ME'); b.setBounds(30,50,80,30); f.add(b); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args()){ FrameButton f=new FrameButton (); } }
Çıktı:
# 2) Frame sınıfını genişleterek
Burada Frame sınıfını genişleten bir sınıf yaratıyoruz ve ardından yapıcısında çerçevenin bileşenlerini oluşturuyoruz.
Bu, aşağıdaki programda gösterilmektedir.
import java.awt.*; class AWTButton extends Frame{ AWTButton (){ Button b=new Button('AWTButton'); b.setBounds(30,100,80,30);// setting button position add(b);//adding button into frame setSize(300,300);//frame size 300 width and 300 height setLayout(null);//no layout manager setVisible(true);//now frame will be visible, by default not visible } public static void main(String args()){ AWTButton f=new AWTButton (); } }
Çıktı:
AWT Renk Sınıfı
Yukarıda gösterdiğimiz AWT çıktısı, arka plan ve ön plan için varsayılan renklere sahipti. Abstract Window Toolkit, rengi oluşturmak ve bileşenlere ayarlamak için kullanılan bir Color sınıfı sağlar. Renkleri, bileşen özellikleri aracılığıyla bir çerçeve kullanarak bileşenlere de ayarlayabiliriz.
Color sınıfı, programlı olarak aynı şeyi yapmamıza izin verir. Bu amaçla, Renk sınıfı RGBA renk modelini (RGBA = KIRMIZI, YEŞİL, MAVİ, ALFA) veya HSB (HSB = TON, SATURATION, BRIComponents) modelini kullanır.
kalite güvencesi ve kalite kontrol nedir
Bu eğitimin kapsamı dışında olduğu için bu sınıfın ayrıntılarına girmeyeceğiz.
Aşağıdaki tablo, Color sınıfı tarafından sağlanan çeşitli yöntemleri listeler.
Oluşturucu / Yöntemler | Açıklama |
---|---|
getBlue () | 0-255 aralığında mavi renk bileşenini döndürür. |
daha parlak () | Mevcut rengin daha parlak bir versiyonunu oluşturun. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Yeni bir PaintContext döndürür. |
daha koyu () | Mevcut rengin daha koyu bir versiyonunu oluşturur. |
decode (Dize nm) | Dizeyi bir tamsayıya dönüştürerek belirtilen opak bir rengi döndürür. |
eşittir (Nesne obj) | Verilen renk nesnesinin mevcut nesneye eşit olup olmadığını kontrol eder. |
getAlpha () | 0-255 arasında değişen rengin alfa değerini döndürür. |
getColor (Dize nm) | Sistem özelliklerinden bir renk döndürür. |
getColor (Dize nm, Renk v) | |
getColor (Dize nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Belirtilen ColorSpace'deki renk bileşenlerini içeren float türünde bir dizi döndürür. |
getColorComponents (float () compArray) | Rengin ColorSpace öğesinden renk bileşenlerini içeren float türünde bir dizi döndürür. |
getColorSpace () | geçerli Rengin Renk Alanını döndürür. |
getGreen () | Varsayılan sRGB alanında 0-255 aralığında yeşil renk bileşeni döndürür. |
kızarmak () | Varsayılan sRGB alanında 0-255 aralığında Kırmızı renk bileşenini döndürür. |
getRGB () | Varsayılan sRGB ColorModel'de mevcut rengin RGB değerini döndürür. |
getHSBColor (float h, float s, float b) | Belirtilen değerlere sahip HSB renk modelini kullanarak bir Color nesnesi oluşturur. |
getTransparency () | bu Renk için şeffaflık değerini döndürür. |
hash kodu() | Bu Renk için hash kodunu döndürür. |
HSBtoRGB (float h, float s, float b) | Verilen HSB'yi RGB değerine dönüştürün |
RGBtoHSB (int r, int g, int b, float () hsbvals) | verilen RGB değerlerini HSB değerlerine dönüştürür. |
Java'da AWT Noktası
Point sınıfı bir konumu belirtmek için kullanılır. Konum, iki boyutlu bir koordinat sisteminden.
Yöntemler | Açıklama |
---|---|
toString () | Noktanın dize gösterimini döndür. |
eşittir (Nesne) | İki noktanın eşit olup olmadığını kontrol edin. |
getLocation () | Geçerli noktanın dönüş konumu. |
hash kodu() | Geçerli nokta için karma kodu döndürür. |
hareket (int, int) | Verilen noktayı (x, y) koordinat sisteminde verilen konuma taşır. |
setLocation (int, int) | Nokta konumunu belirtilen konuma değiştirir. |
setLocation (Nokta) | Noktanın konumunu verilen konuma ayarlar. |
çeviri (int, int) | Geçerli noktayı x + dx, y + dy noktasına çevirin. |
AWT Grafik Sınıfı
Bir uygulamadaki bileşenleri çizmek için Abstract Window Toolkit'teki tüm grafik bağlamları, Graphics sınıfından türetilir. Graphics sınıfı nesnesi, işlemlerin oluşturulması için gereken durum bilgilerini içerir.
Eyalet bilgileri tipik olarak şunları içerir:
- Hangi bileşen çizilecek?
- Oluşturma ve kırpma koordinatları.
- Geçerli renk, yazı tipi ve klip.
- Mantıksal piksel üzerindeki geçerli işlem.
- Mevcut XOR rengi
Graphics sınıfının genel bildirimi aşağıdaki gibidir:
public abstract class Graphics extends Object
AWT Başsız Modu ve Başsız İstisnası
Grafik tabanlı uygulamayla, ancak gerçek bir klavye, fare ve hatta ekran olmadan çalışmamız gerektiği zaman buna 'başsız' ortam denir.
JVM böyle başsız bir ortamın farkında olmalıdır. Abstract Window Toolkit kullanarak başsız ortamı da ayarlayabiliriz.
Bunu aşağıda gösterildiği gibi yapmanın belirli yolları vardır:
# 1) Programlama kodunu kullanarak 'java.awt.headless' sistem özelliğini true olarak ayarlayın.
#iki) Aşağıdaki başsız mod özelliğini true olarak ayarlamak için komut satırını kullanın:
java -Djava.awt.headless = doğru
# 3) Bir sunucu başlatma komut dosyası kullanarak 'JAVA_OPTS' adlı ortam değişkenine '-Djava.awt.headless = true' ekleyin.
Ortam başsız olduğunda ve ekrana, klavyeye veya fareye bağlı bir kodumuz olduğunda ve bu kod başsız bir ortamda yürütüldüğünde 'HeadlessException' istisnası ortaya çıkar.
HeadlessException genel beyanı aşağıda verilmiştir:
public class HeadlessException extends UnsupportedOperationException
Örneğin görüntü tabanlı görüntü girişi gerektiren uygulamalarda başsız modu tercih ediyoruz. Örneğin, Her girişte veya sayfa her yenilendiğinde resmi değiştirmek istiyorsak, bu gibi durumlarda resmi yükleyeceğiz ve klavye, fare vb. gerektirmeyeceğiz.
Java AWT ile Salıncak
Şimdi Java AWT ve Swing arasındaki bazı farklılıklara bakalım.
AWT | Salıncak |
---|---|
AWT, her bir bileşene karşılık gelen 21 eş veya İşletim sisteminin pencere öğesi ile çalışır. | Swing, Pencere Nesnesi olan yalnızca bir eş ile çalışır. Diğer tüm bileşenler Pencere nesnesinin içinde Swing ile çizilir. |
AWT, 'Soyut Windows Araç Seti' anlamına gelir. | Swing, Java Temel Sınıflarından (JFC) türetilmiştir. |
AWT, İşletim Sisteminin alt yordamlarına doğrudan alt yordam çağrıları yaptığından AWT bileşenleri ağırdır. | Salıncak bileşenleri AWT'nin üzerine yazılmıştır ve bu nedenle bileşenler hafiftir. |
AWT bileşenleri, java.awt paketinin bir parçasıdır. | Salınım bileşenleri, javax.swing paketinin bir parçasıdır. |
AWT platforma bağlıdır. | Swing bileşenleri Java ile yazılmıştır ve platformdan bağımsızdır. |
AWT'nin görünümü ve hissi yoktur. Üzerinde çalıştığı platformun görünümünü ve hissini uyarlar. | Swing, kendine özgü farklı bir görünüm ve his sağlar. |
AWT yalnızca temel özelliklere sahiptir ve tablo, sekmeli panel vb. Gibi gelişmiş özellikleri desteklemez. | Swing, JTabbed panel, JTable, vb. Gibi gelişmiş özellikler sağlar. |
AWT, İşletim sisteminin üstüne oturan ince bir sınıf katmanı kadar iyidir ve bu da onu platforma bağımlı hale getirir. | Salıncak daha büyüktür ve ayrıca zengin işlevsellik içerir. |
AWT bize birçok şey yazmamızı sağlıyor. | Swing, yerleşik özelliklerin çoğuna sahiptir. |
Sıkça Sorulan Sorular
S # 1) Java'da AWT nedir?
Cevap: Java'da AWT, Swing çerçevesinden önce gelen platforma bağlı bir grafik kullanıcı arabirimi çerçevesi olan 'Soyut Pencere Araç Seti' olarak da bilinir. Java standart GUI API, Java Foundation Classes veya JFC'nin bir parçasıdır.
S # 2) Java AWT hala kullanılıyor mu?
Cevap: Hala kullanılan birkaç bileşen dışında Java'da neredeyse modası geçmiş durumda. Ayrıca, AWT kullanan eski platformlarda çalışan bazı eski uygulamalar veya programlar vardır.
S # 3) Java'da AWT ve Swing nedir?
Cevap: Abstract Window toolkit, Java'da GUI uygulamaları geliştirmek için kullanılan platforma bağımlı bir API'dir. Öte yandan Swing, GUI geliştirme için bir API'dir ve Java Foundation Classes'dan (JFC) türetilmiştir. AWT bileşenleri ağır, Swing bileşenleri ise hafiftir.
S # 4) Java AWT'deki çerçeve nedir?
Cevap: Çerçeve, başlığı ve sınırı olan üst düzey bileşen penceresi olarak tanımlanabilir. Çerçeve, varsayılan düzeni olarak 'Kenarlık düzenine' sahiptir. Çerçeveler ayrıca Kapat, Açıldı, Kapatılıyor, Etkinleştir, Devre Dışı Bırak vb. Pencere olayları oluşturur.
S # 5) Java AWT'yi içe aktarma nedir?
Cevap: Java AWT'yi İçe Aktar (import java.awt. *), TextFields, Buttons, Labels, List gibi bileşenlerini kullanabilmemiz için programımızda AWT API'nin işlevselliğine ihtiyacımız olduğunu gösterir.
Sonuç
Bu eğiticide, Java'da GUI geliştirmesi için platforma bağlı bir API olarak Özet Pencere Araç Seti'ne genel bakışı tartıştık. Java'da neredeyse modası geçmiş ve yerini Swings ve JavaFX gibi diğer API'ler alıyor.
Şu anda nadiren kullanıldıkları için Özet Pencere Araç Seti'nin tüm bileşenlerinin ayrıntılarına girmedik. Bu nedenle, yalnızca Çerçeveler, Renk vb. Bileşenleri ve AWT kullanılarak ayarlanan başsız modu tartıştık.
Bir sonraki eğitimde, Java Swing eğitimleriyle başlayacağız ve bugün Java uygulamalarının çoğu GUI geliştirme için Swing'i kullandığından, bunları ayrıntılı olarak tartışacağız.
=> Basit Java Eğitim Serisine Buradan Dikkat Edin.
Önerilen Kaynaklar
- Java Arayüzü ve Örneklerle Soyut Sınıf Eğitimi
- Java Temel Bilgileri: Java Sözdizimi, Java Sınıfı ve Temel Java Kavramları
- Java Tamsayı ve Java BigInteger Sınıfı Örneklerle
- Java'da Sınıf Türleri: Soyut, Somut, Son, Statik
- Java Dağıtımı: Java JAR Dosyasının Oluşturulması ve Yürütülmesi
- Örneklerle Java Tarayıcı Sınıfı Eğitimi
- Java'da Özel, Soyut, Dizi ve Dize Oluşturucular
- Java Class Vs Object - Java'da Sınıf ve Nesne Nasıl Kullanılır