Jwindow, JFrame, jdialog

Az ablakok alapján a felhasználói felület bármely operációs rendszer. Ezek vizuálisan Osszuk végre az alkalmazási környezetben. Windows használt Swing könyvtárban. nem sokban különbözik a Windows AWT könyvtárak jelentik az operációs rendszer Windows.

Minden ablak Swing könyvtár - és ezek közé a határok nélküli ablak JWindow. ablakkeret és JFrame JDialog párbeszéd - kivételt képeznek a szabály, hogy minden Swing komponensek könnyű alkatrészeket és örökölt az alap osztály JComponent. Swing ablakok nagysúlyú konténerek elhelyezése könnyű alkatrészek hogy az operációs rendszer nem látja.

A leghasznosabb módszerek JFrame

Ez a csoport a módszer lehetővé teszi, hogy meghatározza a helyzetét és méretét az ablak a képernyőn. setLocation () beállítja az ablak pozícióját, setSize () lehetővé teszi, hogy meghatározza a mérete, hanem setBounds (), akkor meg egy téglalap azonnal, ami elviszi az ablakot a képernyőn

Ez lehetővé teszi, hogy „csomag” az alkatrészek rendelkezésre az ablakon, úgy, hogy vegye fel annyi helyet, mint amennyire szükségük van. A komponensek ezt a módszert nevezik pass „látható” állapotban, de nem jelennek meg a képernyőn, hogy hívja az alábbi módszerek valamelyikét:

A képernyőn megjelenő ablakban. Felhívása után ezek a módszerek, a komponensek mozognak a „látható” az állami és elkezdi kiszolgálni az esemény várakozási sorba. azt mutatják, () módszer is érvényesíti komponenseinek az ablakban

Elrejti az ablakot képernyőt (ha ez az idő az eljárás hívás látszik), és felszabadítja az összes erőforrás általa birtokolt.

ablak JWindow

„A szülők” minden Swing ablakok egy ablak keret nélkül, és anélkül, elemek JWindow kezelése.

Class JWindow egy ablak keret nélkül, és anélkül, vezérlő elemek szánt, például, hogy lezárja vagy áthelyezni. Ez a fajta keretes minimális lehetőséget annak felállítását, szemben a gyakran használt JFrame ablakot. Ablak keret nélkül gyakran nem szükséges programokat. Azonban bizonyos esetekben hasznos lehet, különösen abban az esetben, ha az szükséges röviden megjelenítéséhez bármilyen információ képernyővédő programot, vagy figyelmezteti a felhasználót, és kezeli az ablakon ezt az információt nem szükséges.

A Windows JWindow használ pop JPopupMenu menü olyan helyzetekben, amikor az alkalmazás ablak nem elég hely egy könnyű komponens a réteg a többrétegű panel POPUP_LAYER, ahol az előugró menüben található alapértelmezés szerint. Ebben a helyzetben, hanem a könnyű komponens létrehoz egy kis ablak keret nélkül JWindow, amely lehet elhelyezni bárhol a képernyőn, mert az tartozik, hogy az operációs rendszer. Ebben az ablakban, és elhelyezni egy felugró menü.

Tekintsük a példát JWindowTest. Az alapötlet egy ablak keret nélkül JWindow hogy másolja része a „desktop image” az alkalmazás ablakában. Due megjelent JDK 1.3 Robot osztály csomag „lőni” egy példányát az asztalon képernyőn.

például JWindow

Ebben a példában az alkalmazás örökölnek JWindow ablakot. hogy könnyebb hívja módszerek ebben az osztályban, és adjunk hozzá alkatrészek a dobozban. Robot objektumot kell létrehozni egy try blokkban. fogni. mert annak létrehozását lehet tiltani a biztonsági menedzser, amelyet a Java virtuális gép. Azonban a biztonság megsértése nem fenyegeti, mert hozunk létre egy önálló alkalmazás, hanem egy applet.

Cut a kép egy része „desktop” a createScreenCapture () a pálya szélén, hogy helyét az ablakunk. Ezután a tartalmát az ablak panel hozzáadott komponens ImageDraw, és amely megjeleníti a képeket vágott asztalon. Miután a kimeneti ablak a képernyőn a program megy aludni 10 másodpercig, majd befejezi a munkát.

Pillanatkép asztali felület például JWindow ablak látható a következő ábrán.

Jwindow, JFrame, jdialog

Mielőtt termelő ablak beállítás JWindowTest például felszólítja az alap osztály konstruktora kulcsszó super () paraméterek nélkül. Tény, hogy az ablakok keret nélkül JWindow feltétlenül szükséges létrehozásakor pont annak „szülő” - az ablakkeret JFrame, hogy nem mindig kényelmetlen. Különösen az ilyen esetekre JWindow osztály konstruktor paraméter került, amely létrehoz egy láthatatlan ablak JFrame támogatást és használja, mint egy „szülő”. Ezt követően, az összes ablak keret nélkül az így létrehozott, jár csak ezt az ablakot, és mentse források.

Azt is meg kell jegyezni, hogy a kivitelező paraméterek nélkül jön létre JWindow ablakot. Nem sikerült a bemeneti hangsúly. Leggyakrabban kell végezni (elvégre az eszköztárak, nem kell a fókuszt felugró képernyővédők és menü). Ha szüksége van a bemeneti fókuszba setFocusableWindowState (true) metódust.

JFrame ablakban

JFrame ablak örökli JWindow osztály és a leggyakrabban használt alkalmazás ablak „általános célú”. A fő különbség JFrame ablakok JWindow:

  • jelenléte a keret, amely lehetővé teszi, hogy átméretezni az ablakot;
  • jelenlétében fejrészét az alkalmazás nevét (fejléc lehet üres);
  • képes használni menü rendszer lehetővé teszi manipuláció az ablakot, és a kérelmet;
  • a jelenléte a gombok lezárásához és összecsukható ablakok.

Elhelyezésére a UI komponensek túlnyomó többsége alkalmazások JFrame osztályban. Swing fejlesztők azonosítottak egy speciális módszerrel setDefaultCloseOperation záródó ablakok, nagyban leegyszerűsíti ezt a műveletet. Tekintsük az egyszerű példa JFrame (JFrameWindowListener) a feldolgozási ablak záró rendezvényén.

JFrame példa

A példa létrehoz egy JFrame ablak a cím meghatározott alap osztály kivitelező. Annak megállapításához, a címsor az ablak is használható setTitle módszerrel (JFrame osztály).

Mielőtt Az ablak mérete és jelenítse meg a képernyőn, az úgynevezett setDefaultCloseOperation () metódust. Ez a módszer lehetővé teszi, hogy meghatározza, hogy milyen intézkedéseket kell elvégezni az előkezelő események processWindowEvent () bezárása előtt az ablakot. Az alapértelmezett HIDE_ON_CLOSE állandó, visszahúzható ablak képernyőn, amikor zárva van. Használhatja EXIT_ON_CLOSE értéke azt jelzi, hogy ha bezárja az ablakot meg kell hajtania a kérelmet.

A példában módszert setDefaultCloseOperation továbbított DO_NOTHING_ON_CLOSE állandó - nem tesz semmit, amikor bezárja az ablakot. By JFrame ablak köti össze a hallgató és a feldolgozási ablak záró rendezvény végezzük az eljárás windowClosing. A feldolgozó algoritmus úgy van kialakítva, hogy az ablak bezárul, a harmadik kísérlet. a próbálkozások száma látható a címkén felületen.

Pillanatkép az asztali felület programunk ablak mutatja az alábbi ábra mutatja.

akkor kell használni setIconImage () metódus, hogy meghatározza az ablak ikonok. Ikonra a méret gomb az ablak vagy a fejlécben az ablak a normális állapot.

A további funkciók az ablakkeret JFrame kell említeni azt a képességét, hogy „elrejteni” saját „dekoráció”: a keret és az ablak ellenőrzéseket. Lehetővé teszi, hogy ez a módszer JWindow.

Események ablakok, WindowListener, WindowFocusListener

A Windows Swing (JWindow, JFrame, JDialog) támogatja a két típusú rendezvények:

  • WindowListener - lehetővé teszi, hogy a változásokat a státusz ablakban;
  • WindowFocusListener - jelentette be a számlát vagy veszteség összetevőit a beviteli fókusz ablak

Teljes lista hallgatók ezek a módszerek megtalálhatók az online dokumentációban Java.

A hallgató felület WindowListener gyakrabban alkalmazott módszer windowClosing. Felvet egy eseményt a rendszer, amikor az ablak zárva van. A fenti példa mutatja ezt.

By JFrame lehet csatlakoztatni a hallgató ablakot által létrehozott WindowAdapter (nem valósítja meg a módszerek az interfészben definiált WindowListener) és felülírják az windowClosing módszerrel, amint az a következő kód-sort:

Amikor kilép a program megnyit egy párbeszédablakot JOptionPane panel és a felhasználót kérjük erősítse meg vagy nem akarja befejezni a munkát a kérelmet. Ha a válasz igen, akkor a program kilép.

JDialog párbeszédablak

Párbeszéddobozok leggyakrabban használt további információ iránti kérelmeket telepítésének célja az alkalmazás beállításait, fontos kiegészítő kimeneti / debug információkat. Párbeszédpanelek általában öröklődik (modális), blokkolja a hozzáférést a többi ablak alkalmazások, amíg a felhasználó befejezte a modális párbeszédablak. A modális párbeszédpanelek tetejére helyezzük az alkalmazás főablakát. Megjelenés párbeszédablak alig különbözik a JFrame ablakkeret, de általában kevesebb, a ablakvezérlők (gyakran csak egy ablak bezár gomb), és nincs rendszer menüben.

A Swing dialógusok végre osztály JDialog. örökölt a szülő osztály JWindow ablakok és lehetővé teszi, hogy a normál és a modális párbeszédeket. JDialog JFrame támogatja, és zárja be az ablakot, de egyébként hasonló a többi Swing ablakok.

Létrehozásakor párbeszédablakokkal Swing meg kell határozni a „szülő ablak”, ami lehet egy ablakkeret, vagy egy másik JFrame JDialog párbeszéd. Van is egy kivitelező, amely nem igényel a „szülő” ablak, de kiegészítő átlátszó ablak, amely azt mondta, hogy „ablakot keret nélkül JWindow” oldal.

JDialog például párbeszédpanelek

Ez a példa létrehoz egy ablak keret JFrame. a tartalom panelben melyek JButton gomb található. Egy gomb megnyomásával, hogy hozzon létre egy párbeszédablak egy külön eljárás createDialog (). Dialog JDialog a megadott cím lehet modális és a nem-modális. A program lehetővé teszi, hogy több nem-modális ablakok egyszerre, de csak egy kezelési módszer. Nem modális ablakok ne takarja el a munkát az alkalmazás főablakát. Amikor bezárja a párbeszédablak DISPOSE_ON_CLOSE állandó eltávolítja az ablak bezárása után.

JDialog működésének példáját interfész látható a következő képen.

Jwindow, JFrame, jdialog

A Swing könyvtár egy sor standard JDialog párbeszédpanelek letölteni és megjeleníteni az egyszerű információkat. Létrehozása előtt a saját, akkor érdemes használni egy szabványos párbeszédablakban.

ablakdísz

Kezdve JDK 1.4 Most személyre szabhatja a vizuális úgynevezett „regisztráció” ablak: keret, ablakvezérlők (közel vagy minimálisra csökkentése) gombot, a rendszer menüben. Annak szükségességét, hogy ezt érezte már az első kiadásban Swing.

Most, ablakok létrehozását a különböző felületek köszönhetően lehetséges, hogy javult a UI-gyökér képviselője JRootPane panel. UI-képviselő is hozzon létre egy speciális keret fejléc, a rendszer menü és ablak vezérlő gombok, és helyezze őket a gyökér panel kívánság, egy speciális elrendezés menedzsere. helyen menedzser irányítja a helyet a gyökér panel. Ezen felül, az új design az ablakok le vannak tiltva a rendszer elemek ablak.

Azokban az osztályokban JFrame és JDialog statikus setDefaultLookAndFeelDecorated () metódust, amely lehetőséget biztosít arra, hogy tervezzen minden új ablakok.

Példa az ablakok. JDialog dekoráció

Ez a példa létrehoz egy egyszerű ablak, egy keret és egy párbeszédablak. setDefaultLookAndFeelDecorated () metódus létrehozása előtt az ablakok, ami azt jelenti, hogy a létrehozott ablakok JFrame és JDialog szükség speciális kiürülését. Ezután méreteit határozzák meg az ablakok és azok megjelennek a képernyőn.

Felhívjuk a figyelmet, hogy az eljárás a gyökér panel setWindowDecorationStyle (), akkor beállíthatja ablak dekorációk. Ha a keret ablak csak egyféle design, a párbeszédpanelek, attól függően, hogy céljukat (tájékoztatás, hibaüzenetek, stb) másképp néz ki. A példában meghatároztuk, hogy a létrehozott párbeszédablak megjelenítéséhez szükséges információkat és meg kell nézni rendesen.

Például, a Windows felület, amelynek célja a megjelenése Metal, látható a következő képen.

Jwindow, JFrame, jdialog

A speciális kialakítása az ablakok hasznos lehet, mint egy olyan teljes egészében a Windows, hogy ellenőrizzék a megjelenését az alkalmazás. Készítsen saját UI-gyökér képviselő testület, akkor adja meg a kérelem egyedi megjelenésű, könnyen felismerhető a felhasználók.

Forráskód tárgyalt példák a lap szövege itt tölthető le (3,54 KB).