Hoe om 'n lyskassie in 'n swaai -toepassing te skep?

May 12, 2025پیام بگذارید

Op die gebied van Java Swing -toepassings is lysbokse van onskatbare waarde wat gebruikers in staat stel om een ​​of meer items uit 'n lys te kies. As 'n betroubare aanbieder van die lysvak, het ek eerstehands gesien hoe die transformatiewe krag van die goed -ontwerp -lysblokkies in die verbetering van gebruikersinterfaces. In hierdie blogpos lei ek u deur die proses om 'n lyskassie in 'n swaai -toepassing te skep, van die basiese beginsels tot meer gevorderde konfigurasies.

Impeller 2

Voorvereistes

Voordat ons na die skep van 'n lyskassie gaan, moet u 'n basiese begrip hê van Java -programmering en die Java Swing -biblioteek. Swing is 'n GUI (grafiese gebruikerskoppelvlak) widget -gereedskapstel vir Java. Dit bied 'n ryk stel komponente wat gebruik kan word om visueel aantreklike en gebruikersvriendelike toepassings te skep.

Die skep van 'n basiese lyskassie

Laat ons begin met die eenvoudigste vorm om 'n lyskas te skep. Die volgende Java -kode demonstreer hoe om 'n basiese lysvak met 'n paar voorbeelditems te skep:

`` `Java invoer javax.swing.; invoer java.awt.;

openbare klas BasicListboxExample {public static void main (String [] args) {// skep 'n jframe jframe raam = new JFrame ("Basic List Box voorbeeld"); raam.setDefaultCloseOperation (jFrame.exit_on_close); raam.setsize (300, 200);

// Skep 'n verskeidenheid items vir die lyskassie String [] items = {"Item 1", "Item 2", "Item 3", "Item 4"}; // Skep 'n JList (List Box) met die items JList <String> listbox = new JList <> (items); // Skep 'n jscrollpane om die lysblokkie te laat scrollable jscrollpane scrollpane = new jscrollpane (Listbox); // Voeg die skuifpaneel by die raamraam.getContentPane (). Voeg by (ScrollPane, BorderLayout.Center); // maak die raam sigbare raam.setVisible (waar); }

} `` `

In hierdie kode skep ons eers 'nJFrame, wat die hoofvenster van ons Swing -toepassing is. Dan definieer ons 'n verskeidenheid snare wat sal dien as die items in ons lyskassie. DieJlistKonstrukteur neem hierdie skikking as argument om die lyskassie te skep. Aangesien die lysvak meer items bevat as wat in die sigbare gebied kan pas, draai ons dit in 'nJscrollpaneom dit te laat blaai. Laastens voeg ons die skuifpaneel by die raam en maak die raam sigbaar.

Pas die lyskassie aan

Die basiese lysvak wat ons hierbo geskep het, is funksioneel, maar dit voldoen moontlik nie aan al die vereistes van u aansoek nie. Swing bied verskillende maniere om die voorkoms en gedrag van 'n lyskassie aan te pas.

Kies items

Standaard laat 'n lysvak 'n enkele seleksie -modus toe. U kan dit egter verander na meervoudige keuringsmodus. Hier is hoe:

0061

java // skep 'n JList jlist <string> listbox = new jlist <> (items); // Stel die keuringsmodus op meervoudige seleksie -lys.

In hierdie kode gebruik ons ​​dieSetSelectionModeMetode van dieJlistklas. DieListSelectionModel.Multiple_Interval_SelectionConstant stel die gebruiker in staat om verskeie nie -aaneenlopende items in die lysvak te kies.

Artikels lewer

U kan ook die manier waarop items in die lysblokkie vertoon word, aanpas. U wil byvoorbeeld beelde saam met teks vertoon. Om dit te kan doen, moet u 'n aangepaste selverskaffer skep. Hier is 'n eenvoudige voorbeeld:

`` `Java invoer javax.swing.; invoer java.awt.;

Klas CustomListCellRenderer brei die standaardlistCellRenderer uit {@Override openbare komponent getListCellRendererComponent (JList <?> Lys, Object Value, Int Index, Boole ISSelected, Boole Cellhasfocus) {Komponent C = Super.GetListCellRenderComponent (List, Value, Index, FileSelected, CellHasFocus); if (indeks % 2 == 0) {c.SetBackground (Color.light_gray); } anders {C.SetBackground (Color.White); } terugkeer C; }}

openbare klas CustomListBoxExample {public static void main (String [] args) {jFrame raam = new JFrame ("Custom List Box voorbeeld"); raam.setDefaultCloseOperation (jFrame.exit_on_close); raam.setsize (300, 200);

String [] items = {"item 1", "item 2", "item 3", "item 4"}; JList <String> listbox = new JList <> (items); // Stel die Custom Cell Renderer ListBox.SetCellRenderer in (nuwe CustomListCellRenderer ()); Jscrollpane scrollpane = new JScrollpane (ListBox); raam.getContentPane (). voeg (Scrollpane, BorderLayout.Center); raam.setVisible (waar); }

} `` `

In hierdie voorbeeld skep ons 'n aangepaste selverskaffer deur die uit te breiDefaultListCellRendererklas. Ons ignoreer dieGetListcell renderer -komponentMetode om die agtergrondkleur van elke ander item in die lyskassie te verander.

Werk met datamodelle

In meer ingewikkelde toepassings wil u 'n datamodel gebruik om die items in die lysvak te bestuur. DieDefaultListModelKlas is 'n maklike manier om dit te doen. Hier is 'n voorbeeld:

`` `Java invoer javax.swing.; invoer java.awt.;

openbare klas datamodellistboxExample {public static void main (String [] args) {jFrame raam = new JFrame ("Data Model List Box voorbeeld"); raam.setDefaultCloseOperation (jFrame.exit_on_close); raam.setsize (300, 200);

// Skep 'n DefaultListModel DefaultListModel <String> listModel = new DefaultListModel <> (); listModel.adDelement ("Item A"); listmodel.addelement ("Item B"); listModel.adDelement ("Item C"); // Skep 'n JList met die datamodel JList <String> listbox = new JList <> (ListModel); Jscrollpane scrollpane = new JScrollpane (ListBox); raam.getContentPane (). voeg (Scrollpane, BorderLayout.Center); raam.setVisible (waar); }

} `` `

Met behulp van 'n datamodel kan u die items in die lys maklik byvoeg, verwyder of verander in die lysvak.

Integrasie met regte wêreldtoepassings

As 'n lysverskaffer, verstaan ​​ek dat lysbokse dikwels in werklike wêreldtoepassings gebruik word om verskillende soorte data te vertoon en te bestuur. Byvoorbeeld, in 'n toepassing van die bestuur van masjinerie -onderdele, kan u 'n lyskas gebruik om verskillende onderdele soosGroter 1,Groter 2, enOnthef Waterpyp.

0413

Hier is 'n eenvoudige voorbeeld van hoe u 'n lyskas in 'n toepassing van vloeistofmasjinerie kan integreer:

`` `Java invoer javax.swing.; invoer java.awt.;

Desalination Water Pipe

openbare klas vloeistofmachineryPartsListboxExample {public static void main (String [] args) {jFrame raam = new JFrame ("LILD MASHIONERY -onderdele -lysboks"); raam.setDefaultCloseOperation (jFrame.exit_on_close); raam.setsize (300, 200);

DefaultListModel <String> partsModel = new DefaultListModel <> (); partsmodel.addelement ("waaier 1"); partsmodel.addelement ("waaier 2"); PartsModel.Addelement ("ontsoutingswaterpyp"); JList <String> partsListBox = new JList <> (PartsModel); Jscrollpane scrollpane = new JScrollpane (onderdeleListbox); raam.getContentPane (). voeg (Scrollpane, BorderLayout.Center); raam.setVisible (waar); }

} `` `

Konklusie

Die skep van 'n lyskassie in 'n swaai -toepassing is 'n eenvoudige proses, maar dit bied 'n hoë mate van buigsaamheid en aanpassing. Of u nou 'n eenvoudige toepassing of 'n ingewikkelde ondernemingsvlakstelsel bou, lysbokse kan die gebruikerservaring aansienlik verbeter.

As 'n lysverskaffer is ek daartoe verbind om 'n hoë -kwaliteit List Box -komponente te verskaf wat betroubaar en maklik is om in u Swing -toepassings te integreer. As u belangstel om ons lysboksaanbiedings te verken of vrae te hê oor die opstel van lysbokse in u projekte, moedig ek u aan om na ons uit te reik vir verkryging en verdere besprekings.

Verwysings

  • "Effektiewe Java" deur Joshua Bloch
  • "Java Swing: A Beginner's Guide" deur Herbert Schildt