Ez - archiv

A Swing könyvtár JList osztálya (folytatás)

Az előző leckében nem vettük figyelembe a listaelemek kiválasztására irányuló műveletek programozásának mechanizmusát. Most ezt a mechanizmust a gyakorlati használat szempontjából fontolóra veszi.

Amikor kiválaszt egy listát, a javax.swing.event.ListSelectionEvent esemény generálódik. Ennek megfelelően, hogy programozza a reakciót erre az eseményre, létre kell hoznia és regisztrálnia kell egy hallgatót erre az eseményre.

Tekintsük azokat a módszereket és osztályokat, amelyek szükségesek ehhez a folyamathoz.

A JList osztályban van egy módszer

Hozzáad egy ListSelectionListener típusú listát.

A ListSelectionListener felület a javax.swing.event csomagban van meghatározva. Lássuk a dokumentációt. Ez az interfész egyetlen módszerrel rendelkezik

Így minden egyes alkalommal, amikor kiválasztja a következő elemet a listában, a JList felhívja a regisztrált hallgatók értékcsökkentett módját.

A valueChanged módszer paramétereként a ListSelectionEvent osztály egyik objektuma átadásra kerül. A ValueChanged módszeren belül használhatja az ezen osztály módszereit annak meghatározására, hogy melyik elemet választotta ki a listában. De sokkal kényelmesebb a JList osztály módszereinek használata. amely meghatározza a kiválasztott elemek számát vagy számát. Tekintsük ezeket a módszereket.

lehetővé teszi a kiválasztott listaelem számának meghatározását. Ha több elem van kiválasztva, akkor az első számot adja vissza. Ha nincs kiválasztva elem, akkor -1 értéket ad vissza.

lehetővé teszi, hogy az első a kiválasztott elemek közül a listából. Ha nincs kiválasztva elem, akkor null értéket ad vissza.

Amint láthatja, a JList osztály lehetővé teszi, hogy ne válasszon ki egy vagy több listát. Egy párbeszédablakban ezt megteheti. Tartsa lenyomva a Shift billentyűt. kattintson az első kiválasztani kívánt elemre, majd az utolsóra. Ennek eredményeképpen a listaelemek folyamatos blokkját választják ki. A Ctrl billentyűt a Shift helyett a nem korlátozott elemcsoportok közül is kiválaszthatja. A kiválasztott elemek csoportjával való munkavégzéshez megfelelő módszerek a getSelectedIndices és getSelectedValues ​​(lásd a dokumentációt).

Az elemcsoportok kiválasztásának képessége be- és kikapcsolható a setSelectionMode módszerrel (lásd a dokumentációt).

Gyakorlati munka

Appletek (applet)

Ismerkedjünk meg egy másik fontos koncepcióval - appletekkel. Az appletek olyan kis programok, amelyek böngészőn belül futnak.

Itt a "kis" melléknév tükrözi az appletek szokásos gyakorlatát, és nem valamilyen formális követelményt. Elméletileg az appletek önkényesen nagyok és összetettek lehetnek. De az applet mennyisége befolyásolja az indulás időpontját, mert általában az applet kódot küldi az Interneten / Intraneten. Ennek megfelelően egy nagy applet hosszú időt vesz igénybe a betöltéshez, és annak használata nem indokolható.

A legnépszerűbb böngészők a Netscape Navigator és a Microsoft Internet Explorer (IE). Mindkét böngésző aktuális verziója támogatja az alkalmazások működését. Ehhez mindegyiknek beépített VM (Java virtuális gép) van, amely lehetővé teszi az applet végrehajtását.

Mivel a böngésző alatt a Java programok végrehajtásának sajátossága van, ezeknek a programoknak a létrehozására vonatkozó szabályok vannak. szabályok az appletek készítéséhez. Ezeket a szabályokat egy kicsit később vizsgáljuk meg, de most nézzük meg néhány közös appletproblémát.

Biztonsági probléma

A probléma lényege, hogy az applet rendszerint egy külső forrásból származó program. Ennek megfelelően veszélyes. Gonoszság vagy hiba miatt káros lehet. Sőt, az applet úgy tűnik, hogy az egyik a weboldal és a felhasználó számára lehet, hogy nem is teljesen nyilvánvaló, hogy egy ártalmatlan weboldal elrejti a potenciálisan veszélyes kódot.

Biztonsági okokból az alkalmazásokat alapértelmezés szerint súlyosan korlátozzák jogaik. Ezeket a korlátozásokat az adott böngésző beállításai határozzák meg. A felhasználó saját maga gyengítheti az összes appletet és bizonyos appleteket illetően.

Rengeteg korlátozás van, de csak a főbbeket veszik figyelembe.

Verziókompatibilitási probléma

Ezenkívül más problémák is társulnak a kisalkalmazásokhoz.

Ezután a felhasználóknak telepíteniük kell a böngészők új verzióit. Mi is egy bizonyos időbe telik.

Ezért az appletek fejlesztésekor figyelembe kell venni, hogy vannak olyan elavult böngészők, amelyek nem támogatják ezeket vagy más újításokat.

Különösen a közelmúltban (az idő a telepítéshez szükséges a modern változatai böngészők) a lehetőséget, hogy a csomag Java-programok, beleértve kisalkalmazások, a jar-fájl, ami drasztikusan csökkenti a letöltés applet, és erősen befolyásolja a technológiai fejlődés gyakorlatilag hatékony appletek.

Korábban az applet egy vagy kis számú osztályt próbált végrehajtani. Ez annak köszönhető, hogy minden egyes osztály külön fájlként lett lefordítva, és az egyes internetes fájlok letöltéséhez egy kapcsolat (kapcsolat) szükséges. A legutóbbi verziókban ez nem lényeges - a letöltési sebességet nem az osztályok száma, hanem a jar fájl mérete befolyásolja.

Emellett a jar-fájlok szerkezete folyamatosan változik, javul. Ezek közé tartoznak az opcionális összetevők, amelyek bizonyos funkciókat tartalmaznak. Tehát a legújabb verziókban a jar fájl tartalmazhat egy digitális aláírást, amely garantálja, hogy az appletet egy adott fejlesztő fejlesztette ki, és nem helyettesített valamilyen betolakodóval.

Alkalmazások létrehozása

Az appletek írásának technikája a javax.swing csomag JApplet osztályán alapul.

Ennek az osztálynak számos módszere és számos módja örökölhető az Applet osztályból. Azonban a dokumentáció tanulmányozása nem sok adatot nyújt az appletek készítésének technikájához. Csak tudnia kell, hogyan kell egy appletet létrehozni ezekkel a módszerekkel.

Egy applet létrehozásához létre kell hoznia egy osztályt, amely örökli a JApplet-osztályt, és felülírja az Applet osztály módszereit. A JApplet osztályban ezeket a módszereket üres csonkaként hajtják végre, amelyek semmit sem tesznek. Amikor az applet fut a böngészőben, bizonyos esetekben ezeket a módszereket hívja le. Ha módszereinket definiáljuk, a böngésző felhívja őket, nem Applet osztály módszert.

Tekintsük ezeket a módszereket.

A böngésző közvetlenül az applet betöltése után hívja fel a böngészőt, mielőtt az első hívást a start () metódushoz. Ezt a módszert szinte mindig újra kell definiálni, ha az applethez legalább egy inicializálás szükséges.

Böngészője minden alkalommal, amikor felkeresi ezt az oldalt. Ez azt jelenti, hogy le tudja tölteni ezt az oldalt, majd töltsön le másikat, anélkül, hogy eltávolítaná ezt az elemet, majd térhet vissza ehhez. Általában a stop móddal kombinálva erőforrásokat takarít meg az ügyben, például ha az applet valamilyen animációt végez. A stop megállíthatja, és újra elindíthatja.

A böngésző ezt az oldalt kikapcsolja, amikor az új oldal betöltése esetén ez az oldal ki van kapcsolva, és ha ez az oldal ki lesz töltve. Az utóbbi esetben a megállást az elpusztítás előtt hívják.

Ezt a böngészőt az oldal kirakása előtt hívja.

Általában, amikor létrehoz egy kisalkalmazást, felülbírálja az init () metódust és végrehajtja a képernyő generációját. Ebben az esetben az applet összes funkcióját a mezők, gombok és egyéb aktív vizuális összetevők hallgatják. Tekintsünk egy példát.

Példa applet

Ebben a tisztán demó példában van egy "First applet" felirat, egy gomb és egy szövegmező, amelybe a gomb megnyomásakor megjelenik a "Hi" felirat.

Az applet futtatásához kattintson a következő linkre: Példa egy kisalkalmazásra.

Vegyünk észre egy részletet. Mint a JFrame-hez a JApplet-hez, hozzá kell adnia az elemeket a getContentPane () ablakhoz.

Ie applet úgy néz ki, nagyon hasonlít egy normális társalgási program Java, de ellentétben interaktív programok már tárgyalt példák, amelyekben a kialakulását a képernyőn végzett a kivitelező, a képernyő van kialakítva a módszer init ().

Alkalmazások indítása

Ha azonban megpróbálja használni a fenti kódot AppDemo.html. az eredmény megközelítőleg megegyezik az 1. ábrán látható értékkel.

Az a tény, hogy számos kereskedelmi jellegű okból kifolyólag a böngészők nem támogatják a címkealkalmazást, és mindez kicsit bonyolultabbá vált. A Sun az applet munkájának független támogatásához plug-in elemeket kellett létrehoznia az Internet Explorer és a Netscape Navigator böngészők számára. Ennek megfelelően a html-kódban ezeknek az elemeknek különös kapcsolatokat kell kialakítaniuk.

Például a fenti szövegnek megfelelőnek kell lennie.

Ha az applet létrehozva van, és normálisan működik a gépén, akkor ez nem jelent semmit. Mint minden hálózati alkalmazás esetében, az appletek esetében további tesztelést kell végezni az interneten. Ehhez meg kell adnod a saját webhelyedet, fel kell tenned az appletet a webhelyre és több különböző gépen interneten keresztül is fel kell hívnod, lehetőleg különböző böngészőket használva.

Néhány egyszerű ajánlás

Néha az appletek írása helyett az init helyett újradefiniálja a festési módszert. Ez a Container osztály egy módja. amely az Applet osztály alapja. Ez a megvalósítás lehetséges, de nem ajánlott.

Alkalmazások és alkalmazások

Szinte minden dialógus Java alkalmazás lehet végrehajtani úgy, hogy a munka, mint egy programot, és egy Applet (nem csak akkor kell elfelejteni a korlátozásoknak applet hozzáférés a gépi erőforrások).

Nézzük meg a fenti példát úgy, hogy normális alkalmazásként működjön.

Ehhez a fő módszer végrehajtására volt szükség. Ebben létrehozunk egy AppDemo osztály egyik objektumát. a JFrame osztály tárgya. helyezze az AppDemo objektumot a keretre, állítsa be a keret méretét. Ezt követően hívjuk az init és a kezdési módszerek. végrehajtja a böngésző által végrehajtott műveleteket, ha az appletet futtatnánk vele. Végül aktiváljuk a keretet a setVisible módszerrel.

Gyakorlati munka

Vegyünk egy példát egy notebookra, hogy mind alkalmazásban, mind pedig appletként működjön.

Kapcsolódó cikkek