Model ve Görünüm Denetleyici – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
![Kampanya Hazırlama](https://billgatesweb.com/wp-content/uploads/2022/07/te.webp)
Sınıf Hiyerarşisi
1.2 JDK’da göründüğü şekliyle Swing sınıf hiyerarşisinin ayrıntılı bir genel bakışını gösterir. İlk bakışta, sınıf hiyerarşisi AWT’ye çok benziyor. AWT eşdeğerine sahip her Swing bileşeni, Swing sınıfının önünde büyük bir “J” olması dışında aynı adı paylaşır. Çoğu durumda, bir Swing bileşeni bir AWT bileşeninin yerini alıyorsa, bir yedek parça olarak kullanılabilir.
Ancak daha yakından incelediğinizde, Swing ve AWT bileşenleri arasında memnuniyetle karşılanan farklılıklar olduğunu keşfedeceksiniz. Fark edebileceğiniz ilk öğe, JMenuBar da dahil olmak üzere menü bileşenlerinin artık diğerleriyle aynı temel bileşenin torunları olduğudur: JComponent.
Bu, eski AWT menü sınıflarından bir değişikliktir. Hem AWT 1.0 hem de 1.1 menü sınıfları, yeteneklerini ciddi şekilde sınırlayan kendi üst düzey bileşenleri olan MenuComponent’i devraldı. Ek olarak, bu tasarım, menü çubuklarının düzen yöneticileriyle konteynerlerin içinde konumlandırılmasını engelledi; bunun yerine Java, menü çubuklarını çerçevelerin üstüne iliştirdi.
Ayrıca, Swing’in düğme hiyerarşisini yeniden tasarladığını unutmayın. Artık çift durumlu bileşenlerde kullanılan bir JToggleButton sınıfı içerir. Örneğin, “serbest bırakılmış” konumdayken bir değiştirme düğmesine tıklarsanız, düğme “basılı” duruma geçer ve bu durumda kalır.
Tekrar tıklandığında buton bırakılmış duruma döner. JToggleButton’un, radyo düğmeleri ve onay kutularında görülen davranışı özetlediğini unutmayın. Bu nedenle, bu sınıflar yeni Swing tasarımında JToggleButton’dan miras alır. Ayrıca, Swing’de JRadioButton ve JRadioButtonMenuItem sınıflarının eklendiğine dikkat edin. Şimdiye kadar Java, geliştiricileri radyo düğmelerini taklit etmek için AWT onay kutusu eşdeğerini kullanmaya zorladı.
Swing’deki “kare” ve “bölme” sayısında bir artış fark etmiş olabilirsiniz. Örneğin, iç çerçeveleri düşünün. Swing artık çerçevelerin diğer çerçevelerin içine yerleştirilmesini destekleyebilir; buna Microsoft Windows dünyasında genellikle MDI (çoklu belge arabirimi) denir.
Bu dahili çerçevelere keyfi dikey katmanlar atayabilirsiniz; bu katmanlar hangi iç çerçevenin üstte görüneceğini belirler. Aslında, en basit çerçeve olan JFrame bile, uygulamanızın farklı öğelerini konumlandırabileceğiniz katmanlı bölmeler için destek ekleyerek katman kavramını benimser. Bu konular tartışılır.
Swing’de başka birçok tasarım geliştirmesi vardır; aslında burada tartışılamayacak kadar çok. Ancak devam etmeden önce, her Swing bileşeninin arkasındaki temel tasarımlardan birini ele almalıyız: model-görünüm-denetleyici mimarisi.
Model ve Görünüm Denetleyici
Swing, bileşenlerinin her birinin arkasındaki temel tasarım olarak model-view-controller mimarisini (MVC) kullanır. Esasen, MVC, GUI bileşenlerini üç öğeye ayırır. Bu öğelerin her biri, bileşenin nasıl davranacağı konusunda çok önemli bir rol oynar.
Model, her bileşen için durum verilerini kapsar. Farklı bileşen türleri için farklı modeller vardır. Örneğin, bir kaydırma çubuğu bileşeninin modeli, ayarlanabilir “baş parmağının” mevcut konumu, minimum ve maksimum değerleri ve başparmağın genişliği (değer aralığına göre) hakkında bilgi içerebilir.
Öte yandan bir menü, kullanıcının seçebileceği menü öğelerinin bir listesini içerebilir. Bileşenin ekranda nasıl boyandığına bakılmaksızın bu bilgilerin aynı kalacağını unutmayın; model verileri her zaman bileşenin görsel sunumundan bağımsız olarak mevcuttur.
Görünüm, bileşeni ekranda nasıl gördüğünüzü ifade eder. Görünümlerin nasıl farklı olabileceğine dair iyi bir örnek için, iki farklı GUI platformundaki bir uygulama penceresine bakın. Hemen hemen tüm pencere çerçevelerinde, pencerenin üst kısmına yayılan bir başlık çubuğu bulunur.
Ancak, başlık çubuğunun sol tarafında bir kapatma kutusu olabilir (eski MacOS platformunda olduğu gibi) veya sağ tarafında bir kapatma kutusu olabilir (Windows 95 platformunda olduğu gibi). Bunlar, aynı pencere nesnesi için farklı görünüm türlerinin örnekleridir.
MVC Delete
Entity Framework SQL Server connection
MVC Edit
MVC Model ekleme
NET MVC delete action
MVC List kullanımı
Asp.Net MVC silme işlemi
MVC where Kullanımı
Denetleyici, bileşenin olaylarla nasıl etkileşime gireceğini belirleyen kullanıcı arabiriminin parçasıdır. Olaylar, bir fare tıklaması, odaklanma kazanma veya kaybetme, belirli bir menü komutunu tetikleyen bir klavye olayı veya hatta ekranın bir bölümünü yeniden boyama yönergesi gibi birçok biçimde olabilir. Denetleyici, tepki verirse her bileşenin olaya nasıl tepki vereceğine karar verir.
Bir kaydırma çubuğu bileşeni oluşturmak için model, görünüm ve denetleyicinin birlikte nasıl çalıştığını gösterir. Kaydırma çubuğu, baş parmağın kaydırma çubuğunun ne kadar içine gireceğini ve başparmağın ne kadar geniş olması gerektiğini belirlemek için modeldeki bilgileri kullanır. Modelin bu bilgiyi minimum ve maksimuma göre belirttiğine dikkat edin.
Başparmağın konumunu veya genişliğini ekran piksellerinde vermez; görünüm bunu hesaplar. Görünüm, modelin sunduğu oranlar göz önüne alındığında, kaydırma çubuğunun tam olarak nerede ve nasıl çizileceğini belirler. Görünüm, yatay mı yoksa dikey kaydırma çubuğu mu olduğunu bilir ve son düğmeleri ve başparmağı nasıl gölgeleyeceğini tam olarak bilir.
Son olarak, denetleyici, bileşen üzerindeki fare olaylarını işlemekten sorumludur. Denetleyici, örneğin, başparmağı sürüklemenin bir kaydırma çubuğu için geçerli bir eylem olduğunu ve son düğmelerine basmanın da kabul edilebilir olduğunu bilir. Sonuç, tamamen işlevsel bir MVC kaydırma çubuğudur.
MVC Etkileşimi
MVC ile model, görünüm ve denetleyici olmak üzere üç öğenin her biri, kendisini sürekli güncel tutmak için başka bir öğenin hizmetlerine ihtiyaç duyar. Kaydırma çubuğu bileşenini tartışmaya devam edelim.
Görünümün, önce modelden bilgi almadan kaydırma çubuğunu doğru şekilde işleyemediğini zaten biliyoruz. Bu durumda kaydırma çubuğu, minimum ve maksimuma göre mevcut konumunu ve genişliğini elde edemediği sürece “baş parmağını” nereye çizeceğini bilemeyecektir.
Benzer şekilde görünüm, bileşenin fare tıklamaları gibi kullanıcı olaylarının alıcısı olup olmadığını belirler. (Örneğin, görünüm, başparmağın tam genişliğini bilir; tıklamanın başparmağın üzerinde mi yoksa hemen dışında mı gerçekleştiğini söyleyebilir.) Görünüm, bu olayları denetleyiciye iletir ve denetleyici, bunlarla en iyi nasıl başa çıkılacağına karar verir.
Denetleyicinin kararlarına bağlı olarak, modeldeki değerlerin değiştirilmesi gerekebilir. Kullanıcı kaydırma çubuğu başparmağını sürüklerse, denetleyici, başparmağın modeldeki konumunu artırarak tepki verir. Bu noktada, tüm döngü tekrar edebilir. Bu nedenle, üç öğe verilerini gösterildiği gibi iletir.
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)