Java Swing uygulamaları alanında, liste kutuları, kullanıcıların bir listeden bir veya daha fazla öğe seçmesine izin veren paha biçilmez bileşenlerdir. Güvenilir bir liste kutusu tedarikçisi olarak, kullanıcı arayüzlerini geliştirmede iyi tasarlanmış liste kutularının dönüştürücü gücüne ilk elden tanık oldum. Bu blog yazısında, bir salıncak uygulamasında bir liste kutusu oluşturma sürecinde, temellerden daha gelişmiş yapılandırmalara kadar size rehberlik edeceğim.
Önkoşul
Bir liste kutusu oluşturmaya çalışmadan önce, Java programlama ve Java Swing Kütüphanesi hakkında temel bir anlayışa sahip olmanız gerekir. Swing, Java için bir GUI (grafik kullanıcı arayüzü) widget araç setidir. Görsel olarak çekici ve kullanıcı dostu uygulamalar oluşturmak için kullanılabilecek zengin bir bileşen seti sağlar.
Temel Liste Kutusu Oluşturma
Bir liste kutusu oluşturmanın en basit şekli ile başlayalım. Aşağıdaki Java kodu, birkaç örnek öğeyle temel bir liste kutusunun nasıl oluşturulacağını gösterir:
`` Java ithalat javax.swing.; ithal java.awt.;
public class BasicListBoxExample {public static void main (String [] args) {// bir jframe jframe frame = new jframe ("temel liste kutusu örneği") oluştur; frame.setDefaultCloseOpation (jframe.exit_on_close); Frame.setSize (300, 200);
// Liste kutusu dizisi için bir dizi öğe oluşturun [] {"Öğe 1", "Öğe 2", "Öğe 3", "Öğe 4"}; // JLIST <String> ListBox = yeni JLIST <> (öğeler) öğeleriyle bir JLIST (Liste Kutusu) oluşturun; // Liste kutusunu kaydırılabilir hale getirmek için bir JScrollPane oluşturun JSCROLLPANE SCROLLPANE = YENİ JSCROLLPANE (ListBox); // kaydırma bölmesini kare kare.getContentPane () 'e ekleyin. // çerçeveyi görünür bir çerçeve yapın. }
} ``
Bu kodda, önce birJframe, salıncak uygulamamızın ana penceresi olan. Ardından, liste kutumuzdaki öğeler görevi görecek bir dizi dizeyi tanımlarız. .JlistYapıcı bu diziyi liste kutusunu oluşturmak için bir bağımsız değişken olarak alır. Liste kutusu görünür alana sığabilecek daha fazla öğe içerebileceğinden, birJscrollpanekaydırılabilir hale getirmek için. Son olarak, kaydırma bölmesini çerçeveye ekler ve çerçeveyi görünür hale getiririz.
Liste kutusunu özelleştirme
Yukarıda oluşturduğumuz temel liste kutusu işlevseldir, ancak uygulamanızın tüm gereksinimlerini karşılamayabilir. Swing, bir liste kutusunun görünümünü ve davranışını özelleştirmek için birkaç yol sağlar.
Öğeleri Seçme
Varsayılan olarak, bir liste kutusu tek seçim moduna izin verir. Ancak, birden çok seçim moduna değiştirebilirsiniz. İşte nasıl:
Java // JLIST JLIST <String> ListBox = Yeni JLIST <> (öğeler) oluşturun; // Seçim modunu birden çok seçim listesi olarak ayarlayın.
Bu kodda,setSelectionModeyöntemiJlistsınıf. .ListSelectionModel.multiple_interval_selectionConstant, kullanıcının liste kutusunda birden fazla bitişik olmayan öğe seçmesini sağlar.
Öğeleri oluşturma
Öğelerin liste kutusunda görüntülenme şeklini de özelleştirebilirsiniz. Örneğin, görüntüleri metinle birlikte görüntülemek isteyebilirsiniz. Bunu yapmak için özel bir hücre oluşturucu oluşturmanız gerekir. İşte basit bir örnek:
`` Java ithalat javax.swing.; ithal java.awt.;
Class CustomListCellRenderer, defaultListCellRenderer {@Override Public Bileşeni GetListCellRendererComponent (JLIST <?> Liste, Nesne Değeri, Int index, Boolean IsSelected, Boolean Cellhasfocus) {Boonean Cellhasfocus) {Super.getListCellrenderComponent (Liste, Değer, indeksi, inselect, cellhasocus); if (indeks % 2 == 0) {c.setbackground (color.light_gray); } else {c.setbackground (color.white); } dönüş c; }}
public class customListBoxExample {public static void main (String [] args) {jframe frame = new jframe ("özel liste kutusu örneği"); frame.setDefaultCloseOpation (jframe.exit_on_close); Frame.setSize (300, 200);
String [] öğeler = {"Öğe 1", "Madde 2", "Madde 3", "Öğe 4"}; JLIST <String> ListBox = yeni JLIST <> (öğeler); // Özel Hücre oluşturucu listesi.SetCellRenderer (yeni CustomListCellRenderer ()); JScrollPane ScrollPane = yeni JScrollPane (ListBox); frame.getContentPane (). Add (scrollPane, BorderLayout.center); Frame.setvisible (true); }
} ``
Bu örnekte, özel bir hücre oluşturucu oluşturuyoruz.DefaultListCellrenderersınıf. Biz geçersiz kılıyoruzGetListCell Render BileşeniListe kutusundaki diğer her öğenin arka plan rengini değiştirmek için yöntem.
Veri modelleriyle çalışmak
Daha karmaşık uygulamalarda, liste kutusundaki öğeleri yönetmek için bir veri modeli kullanmak isteyebilirsiniz. .DefaultListModelSınıf bunu yapmanın uygun bir yoludur. İşte bir örnek:
`` Java ithalat javax.swing.; ithal java.awt.;
public class dataModelListBoxExample {public static void main (String [] args) {jframe frame = new jframe ("Veri Modeli Listesi kutusu örneği"); frame.setDefaultCloseOpation (jframe.exit_on_close); Frame.setSize (300, 200);
// bir defaultListModel Oluşturun defaultListModel <String> listmodel = yeni defaultListModel <> (); listmodel.AddElement ("öğe A"); listmodel.AddElement ("B"); listmodel.AddElement ("Madde C"); // <String> listbox = yeni jlist <> (listmodel) veri modeliyle bir jlist oluşturun; JScrollPane ScrollPane = yeni JScrollPane (ListBox); frame.getContentPane (). Add (scrollPane, BorderLayout.center); Frame.setvisible (true); }
} ``
Veri modelini kullanmak, çalışma zamanında liste kutusuna öğeleri kolayca eklemenize, kaldırmanıza veya değiştirmenize olanak tanır.
Gerçek - Dünya Uygulamaları ile Entegrasyon
Bir liste kutusu tedarikçisi olarak, liste kutularının genellikle çeşitli veri türlerini görüntülemek ve yönetmek için gerçek - dünya uygulamalarında kullanıldığını anlıyorum. Örneğin, bir Akışkan Makineleri Parçaları Yönetimi uygulamasında, farklı parçaları görüntülemek için bir liste kutusu kullanabilirsiniz.Pervane 1-Pervane 2, VeTuzdan arındırma su borusu.
Bir liste kutusunu bir Sıvı Makinesi Parçaları Yönetimi uygulamasına nasıl entegre edebileceğinizin basit bir örneği:
`` Java ithalat javax.swing.; ithal java.awt.;
public class fluidMachineryPartsListBoxexample {public static void main (String [] args) {jframe frame = new jframe ("sıvı makineleri parçaları listesi"); frame.setDefaultCloseOpation (jframe.exit_on_close); Frame.setSize (300, 200);
DefaultListModel <String> partsModel = yeni defaultListModel <> (); PartsModel.AddElement ("Pervane 1"); PartsModel.AddElement ("Pervane 2"); PartsModel.AddElement ("Tuzdan çıkma Su Borusu"); JLIST <String> PartsListBox = yeni JLIST <> (PartsModel); JScrollPane ScrollPane = yeni JScrollPane (PartsListBox); frame.getContentPane (). Add (scrollPane, BorderLayout.center); Frame.setvisible (true); }
} ``
Çözüm
Bir salıncak uygulamasında bir liste kutusu oluşturmak basit bir işlemdir, ancak yüksek derecede esneklik ve özelleştirme sunar. Basit bir uygulama ister karmaşık bir işletme - seviye sistemi oluşturun, liste kutuları kullanıcı deneyimini büyük ölçüde artırabilir.
Bir liste kutusu tedarikçisi olarak, güvenilir ve salıncak uygulamalarınıza entegre edilmesi kolay yüksek kaliteli liste kutusu bileşenleri sağlamaya kararlıyım. Liste kutusu tekliflerimizi keşfetmekle ilgileniyorsanız veya projelerinizde liste kutuları oluşturma hakkında herhangi bir sorunuz varsa, tedarik ve daha fazla tartışma için bize ulaşmanızı öneririm.
Referanslar
- Joshua Bloch tarafından "Etkili Java"
- Herbert Schildt tarafından "Java Swing: Yeni Başlayanlar Kılavuzu"
