Swing


A Swing elnevezés tulajdonképp a JFC (Java Foundation Classes) grafikus komponenseit fejlesztő projekt kódneve volt. A JFC a Sun ipari Java alkalmazások fejlesztését elősegítő programkönyvtár gyüjteménye, amely a Netscape IFC (Internet Foundation Classes) és az IBM Taligent részlegének együttműködésével keletkezett. A Swing tehát olyan grafikus komponensek gyüjteménye, melyek az AWT-re (pontosabban annak eseménykezelő modelljére és pehelysúlyú komponens lehetőségére) épülnek. Ennek legnagyobb előnye, hogy a Swing teljesen Java-ban íródhatott, így független lett a grafikus felületet megjelenítő operációs rendszertől, lehetővé téve ezáltal koplex grafikus felhasználói elemek létrehozását, mivel az AWT komponenseivel szemben nem kellett az API megtervezésekor a különböző grafikus megjelenítő felületek lehetőségeinek a legkisebb közös részhalmazához alkalmazkodni.

  1. a SwingTest program
  2. Ezen példaprogram a további példaprogramjaink alapjául fog szolgálni, pontosabban minden példaprogramunk ezen osztály leszármazottja lesz. Ennek megfelelően ezen alaposztály által nyújtott szolgáltatásokat a továbbiakban az öröklődésnek köszönhetően már nem kell implementálnunk, viszont az aktuális programpéldányt létrehozó statikus main és a felhasználói felület felépítését végző buildGUI metódusokat mindig felül kell definiálnunk. Az alapimplementáció egy olyan grafikus felhasználói felületet hoz létre, ahol felül látni a naplózás eredményét, középen egy címke található, alulra pedig a stílusváltást végrehajtó gombok -- alkalmazás esetén pedig még a kilépés gomb is -- kerülnek. A felület felépítésének minden főbb állomása naplózásra kerül. Ezen felhasználói felület megjelenítésének nyomkövetésekor a teljes felület megrajzolása nyomkövetésre kerül.

  3. a SwingToolTipTest program
  4. Ezen példaprogram a segédszövegek használatát szemlélteti. A felhasználói felületen látható három görgetősávval a segédszövegeket megjelenítő vezérlő objektum időzítési paramétereit lehet állítani, ugyanakkor ezen görgetősávok segédszövege a paraméter aktuális értékén kívül az egérkurzor pozícióját is megjeleníti HTML formátumban. A görgetősávok címkéi segédszövegeinek megjelenítése nyomkövethető.

  5. a SwingTimerTest program
  6. Ezen példaprogram az időzítők használatát szemlélteti. A felhasználói felület csak egy, az aktuális időt megjelenítő cimkéből áll. Az idő léptetését, valamint a megjelenítő címke pozíciójának véletlenszerű változtatását két különálló időzítő segítségével ütemezzük. Az időt kijelző címke megjelenítése nyomkövethető.

  7. a SwingBorderTest program
  8. Ezen példaprogram a keretek használatát szemlélteti. A felhasználói felület tetején egy nyomógomb látható, amelynek keretfelépítését tetszőlegesen módosíthatjuk. Alatta az aktuális keretek listája és mérete látható kilistázva. A felület alján található vezérlőgombokkal új keretet rakhatunk a gombra, vagy törölhetjük a legkülső keretet, illetve megváltoztathatjuk az aktuális megjelenítési stílust. Az keretes gomb megjelenítése nyomkövethető.

  9. a SwingGlassPaneTest program
  10. Ezen példaprogram az üvegpanel használatát szemlélteti. A felhasználói felület legfontosabb eleme az üveglapkapcsoló kiválasztható gomb, mellyel az üveglap láthatóságát vezérelhetjük. Ez a komponens mindig megkapja az egéreseményeket. Ha látszik az üveglap, akkor a legutolsó egérkattintási esemény helyén egy pötty fog megjelenni. Az üveglap átlátszóságát az üveglap egyetlen kiválasztható gomb komponensével lehet szabályozni. Ezen gomb érdekessége, hogy megragadhatjuk az egérrel és interaktívan elmozdíthatjuk tetszőleges helyre. Az üveglap megjelenítése nyomkövethető.

  11. a SwingDialogTest program
  12. Ezen példaprogram a dialógusdobozok használatát szemlélteti. A felhasználói felület felül egy menüből, középen a dialógusdobozok eredményét naplózó komponensből, alul pedig az aktuális megjelenítési stílust megváltoztató gombokból áll. A menü segítségével kipróbálhatjuk a betöltési/kimentési dialógusablakokat, a színkiválasztási dialógusablakot, valamint a különböző üzenettípussal, illetve opciótípussal rendelkező dialógusdobozokat.

  13. a SwingBoxTest program
  14. Ezen példaprogram a Box konténer használatát szemlélteti. A program indulásakor véletlenszerűen létrehoz valahány komponenst, majd egy oszlopba szervezi azokat. A komponensek jellemzőit ki is írja a program az alapértelmezett kimenetre. A létrehozott komponens vagy egy láthatatlan fix, illetve kitöltő komponens, vagy egy olyan nyomógomb, amely megjeleníti a vízszintes igazítási pontját egy azt jelölő vonallal, sőt lehetővé teszi az igazítási arány interaktív állítását a gomb területére történő egérkattintással. Ezen nyomógombok alapértelmezés szerint fix méretűek, de maximális méretük korlátozása feloldható a felhasználói felület alján található kiválasztható gomb segítségével. Speciális nyomógombjaink megjelenítése nyomkövethető.

  15. a SwingScrollPaneTest program
  16. Ezen példaprogram a görgethető panelek használatát szemlélteti. A felhasználói felület tetején látható a naplózó komponens, a közepén látható görgethető panel pedig egy kép görgetését teszi lehetővé, ahol az egérkurzor aktuálisan pozíciójában egy vízszintes és egy függőleges fehér vonal fogja egymást metszeni. A görgethető panel sor és oszlopfejléceként egy vonalzóhoz hasonló, beosztásokat tartalmazó komponenst használtunk, ami egy mutató segítségével megjelöli az egérkurzor aktuális pozíciójának vízszintes és függőleges koordinátaértékét. A görgethető panel sarkaiba egyszerű nyomógombokat helyeztünk, ezek megnyomásakor a megfelelő sarok neve kerül naplózásra. A görgethető panel görgetősávjait direkt vastagabbra állítottuk, hogy még több hely maradjon a sarokkomponensek számára. A felhasználói felület alján található vezérlő panel a vízszintes és függőleges görgetősáv megjelenítési politikáját megadó legördülő listákat, valamint a megjelenítés stílusát megváltoztató nyomógombokat tartalmaz. A görgethető panel megjelenítése nyomkövethető.

  17. a SwingSplitPaneTest program
  18. Ezen példaprogram a kettéosztható panelek használatát szemlélteti. A felhasználói felületen egy kettéosztható panel látható, amely egyik felében a megjelenítés stílusát megváltoztató nyomógombokat tartalmazza, a másik felében pedig egy képet tartalmaz, amely a rendelkezésére álló területet teljesen kitölti. A felhasználói felület alján található vezérlőgombokkal szabályozhatjuk az elválasztóvonal irányítottságát és egyetlen kattintással történő szélsőhelyzetbe állításának lehetőségét, a kettéosztható panel engedélyezettségét, valamint az elosztóvonal mozgatása alatti folyamatos megjelenítést. A kettéosztható panel megjelenítése nyomkövethető.

  19. a SwingTabbedPaneTest program
  20. Ezen példaprogram a többoldalas panelek használatát szemlélteti. A felhasználói felületen egy többoldalas panel látható, melybe új oldalt felvenni, vagy a fülek helyzetét megváltoztatni az alatta levő vezérlő panel gombjaival lehet. A panel minden oldala sorszámmal rendelkezik, amit az oldal keretének felirata mutat meg. Minden oldal külön engedélyezhető/letiltható, törölhető, lehet elé és mögé is új oldalt beszúrni, illetve rá lehet lépni az előtte vagy utána következő oldalra. Ezen funkciókat elvégző gombok minden oldalon megtalálhatóak. Kezdetben az ismert megjelenítési stílusok, mint kiválasztható fülek jelennek meg, egy ilyen oldal kiválasztása pedig az adott megjelenítési stílus aktivizálását vonja maga után. A felhasználói felület tetején levő komponensben a többoldalas panel kiválasztott oldalának indexe kerül naplózásra. A többoldalas panel megjelenítése nyomkövethető.

  21. a SwingInternalFrameTest program
  22. Ezen példaprogram a belső ablakok használatát szemlélteti. A felhasználói felület tetején az ablakvezérlő által végzett műveletek naplója található, a középső terület tartalmazza a belső ablakokat, alul pedig az új ablakot létrehozó gomb mellett található nyomógombokkal a megjelenítés stílusát lehet megváltoztatni. Egy belső ablak tetején az ablakkal történő műveletek naplója látható, alatta pedig az ablak tulajdonságait és műveleteit jelölő kiválasztható gombokon kívül még két gomb található, melyekkel az ablakot annak rétegén belül előtérbe, illetve háttérbe lehet mozgatni. A belső ablakok közül legalább egy mindig látható, azaz nem lehet minden ablak egyszerre ikonizált állapotban. Ha az utolsó ablakot is bezártuk, akkor alkalmazás esetén befejeződik a program, míg applet esetén automatikusan létrejön egy új ablak. A belső ablakok megjelenítése nyomkövethető.

  23. a SwingToolBarTest program
  24. Ezen példaprogram a segédeszköz panelek használatát szemlélteti. A felhasználói felületen egy segédeszköz panelt lehet tetszőleges oldalra elhelyezni, amely a megjelenési stílust váltó gombokon kívül alkalmazás esetén egy kilépés gombot is tartalmaz. A felület közepén látható naplózó komponens a segédeszköz panel mozgatását naplózza, az alatta található vezérlő panel gombjaival pedig a segédeszköz panel engedélyezettségét, mozgathatóságát, valamint keretének megrajzolását és ablakon belüli pozícióját lehet szabályozni. A segédeszköz panel megjelenítése nyomkövethető.

  25. a SwingButtonTest program
  26. Ezen példaprogram a gombok használatát szemlélteti. A felhasználói felület bal oldalán kétállapotú stílusváltó gombok, tetején stílusváltó rádiógombok, jobb oldalán stílusváltó nyomógombok, alján pedig a gombok megjelenítését szabályozó kiválasztható gombok láthatók. A kétállapotú és sima nyomógombok ikonnal is rendelkeznek, amely el fog tünni, ha az egérkurzorral a gomb területére lépünk. A felhasználói felület közepén a gombok jellemzőinek változását naplózó komponens található. Az alul található vezérlőpanel gombjai segítségével a gombokat engedélyezhetjük/letilthatjuk, ki/be lehet kapcsolni a gombok keretének, tartalmának és fókuszának megrajzolását, valamint szabályozható az egér figyelése, illetve a gombok szövegének és ikonjának igazítása. Az összes gomb megjelenítése nyomkövethető.

  27. a SwingTextTest program
  28. Ezen példaprogram a szövegmező komponensek használatát szemlélteti. A felhasználói felület tetején egy sima egysoros szövegmező, alatta a többsoros naplózó komponens, az alatt pedig egy jelszóbeviteli mező látható. Minden szövegmodell esemény és kurzorpozíció változás naplózásra kerül. A soreditor és a jelszómező azonos szövegmodellel rendelkeznek, amely lehetővé teszi a szövegmező tartalma hosszának maximalizálását, azaz egy adott hosszt soha nem léphet túl a szövegmezők tartalma. Szintén modell szintjén szabályozható a sortörés karakterek szűrése. A felhasználói felület alján található vezérlőpanel gombjaival a megjelenítési stílus váltásán kívül állíthatjuk a szövegmezők szerkeszthetőségét, engedélyezettségét, a szöveg igazítását, a szövegmodell hosszkorlátozását, illetve a sortördelés karakter kiszűrését, valamint a többsoros napló szövegtördelését. Az összes szövegbeviteli mező megjelenítése nyomkövethető.

  29. a SwingMiniBrowser alkalmazás
  30. Ezen példaprogram egy egyszerű böngészőprogramot valósít meg. A kezdeti oldal URL-jét a program egyetlen paramétereként kell megadni. A megjelenített oldal hyperhivatkozásait kiválasztva a hivatkozott oldal fog megjelenni.

  31. a SwingListTest program
  32. Ezen példaprogram a listák használatát szemlélteti. A felhasználói felület tetején egy legördíthető lista látható. Ugyanezen listaelemeket jeleníti meg a jobb oldalon látható lista is. A lista kezdetben a rendelkezésre álló megjelenítési stílusok nevét és ikonját tartalmazza, ezen elemek bármelyikének kiválasztása a megfelelő megjelenítési stílus beállítását vonja maga után. A felső legördíthető lista szerkeszthető, annak szerkesztőmezője segítségével új listaelemeket lehet felvenni. A felhasználói felület alján látható vezérlőpanel gombjaival a kiválasztott listaelemeket lehet törölni, elrejteni, az összes elrejtett listaelemet újra megjeleníteni, valamint a legördíthető lista szerkeszthetőségét és a bal oldali lista kiválasztási modelljét lehet megadni. A felület maradék részén pedig a naplózó komponens látható, amelyben a lista adatmodelljének változása, valamint a listaelemek kiválasztás kerül naplózásra. A lista és a legördülő lista megjelenítése nyomkövethető.

  33. a SwingTableTest program
  34. Ezen példaprogram a táblázatok használatát szemlélteti. A felhasználói felület tetején a naplózó komponens látható, ahol a táblázat adatmodelljének, valamit a kiválasztás változását követhetjük nyomon. Alatta egy 10*50-es táblázat látható, amely kezdetben az adott cella sor- és oszlopszámának szorzatát reprezentáló számot tartalmaz minden cellájában. A táblázatban található egy logikai értékeket tartalmazó oszlop is, melynek kiválasztott értéke az adott sor pirossal történő kiemelését eredményezi. Ezen táblázat különlegessége, hogy bármely kiválasztott oszlop lefixálható, ami azt jelenti, hogy az oszlop a táblázat elejére kerül és mindig látható marad, tehát nem kerül a táblázat többi oszlopával együtt görgetésre. A táblázat sorai egy adott oszlop értékei alapján rendezhetőek, ha rákattintunk valamely oszlop fejlécére. A táblázat mezői szerkeszthetőek (duplakattintás hatására), valamint minden négyzetszámot ábrázoló mezőjében ikon jeleníttethető meg. Legalul a vezérlő panel látható, melynek gombjai lehetővé teszik a táblázat jellemzőinek szabályozását, kiválasztott oszlopok fixálást, illetve oszlopok fixálásának feloldását, valamint a megjelenitési stílus váltását. A táblázat megjelenítésének nyomkövetése még nem lehetséges.

  35. a SwingTreeTest program
  36. Ezen példaprogram a fastruktúrák használatát szemlélteti. A felhasználói felület tetején a naplózó komponens látható, ahol a fastruktúra adatmodelljének, valamit a kiválasztás változását követhetjük nyomon. Alatta egy végtelen, teljes 10-áris fastruktúra látható, amely kezdetben az adott fapont útvonalát reprezentáló szöveget tartalmaz minden fapontjában. A fastruktúra fapontjai szerkeszthetőek (jobb egérgombbal kattintás hatására), elrejthetőek, egy adott fapont gyermekei pedig növekvő ABC-rendeben jelennek meg. Legalul a vezérlő panel látható, melynek gombjai lehetővé teszik a fastruktúra jellemzőinek szabályozását, valamint a megjelenitési stílus váltását. A fastruktúra megjelenítése nyomkövethető.

  37. a SwingRangeTest program
  38. Ezen példaprogram a görgetősávok és állapotjelzők használatát szemlélteti. A felhasználói felület tetején látható értékkiválasztó és sima görgetősáv, valamint állapotjelző az értéktartomány aktuális állapotát reprezentálják. A bal oldali értékkiválasztó görgetősávval az értéktartomány kezdetét, a jobb oldalival a végét, az alsóval pedig a résztartomány hosszát lehet szabályozni. Ezen értékkiválasztó görgetősávokkal egy adatmodellen osztozó sima görgetősávok is láthatók a megfelelő értékkiválasztó görgetősáv mellett, illetve felett. A felhasználói felület közepén a naplózó komponens látható, amely az értéktartomány jellemzőinek változását naplózza. Alatta található a vezérlő panel, melynek gombjai segítségével az értéktartomány alapú komponensek jellemzőit, valamint a megjelenítési stílust lehet szabályozni. Minden értéktartomány adatmoddelű komponens megjelenítése nyomkövethető.

  39. a SwingMenuTest program
  40. Ezen példaprogram a Swing menük használatát szemlélteti. A felhasználói felület csak egy menüt tartalmaz, melynek különböző típusú almenüi segítségével megváltoztathatjuk az aktuális megjelenítési stílust. A menü alatti naplózó komponens az aktuális menükiválasztást naplózza. A menürendszer megjelenítése nyomkövethető.

A példaprogramokat appletként futtató HTML oldalakat a JavaSoft HTMLConverter programjával konvertáltuk, ezért megtekintésükhöz a JRE részét képező Java-plugin szükséges!