Hogyan hozzunk létre áttetsző és alakú Windows Java?

Áttekintés: Ebben a cikkben fogjuk megvitatni az átláthatóságot és a különböző formájú ablakok Java. A java 7 swing támogatja ezt a funkciót, és hogy swing UI komponensek rugalmasabb és felhasználóbarát.

Bevezetés: Néhány alkalmazás, átlátszó ablak a követelmény, hogy támogassa a funkcionalitás. Most Java, átláthatóság lehet megvalósítani. A áttetsző ablak létre megváltoztatása fedettség megvalósításával egy módon, az ún setOpacity a JFrame komponens. De meg kell értenünk, hogy egy áttetsző ablak csak akkor lehetséges, ha az operációs rendszer támogatja. És azt is meg kell győződnie arról, hogy az ablak nem díszítik. Ahhoz, hogy egy ablak díszítetlen, meg kell hívni setUndecorated (igaz) módszer. Néhány alkalommal az is szükséges, hogy változtatni az alakját egy ablak UI. Annak végrehajtására, fel kell hívni setShape módszer a componentResized módszer. Ez újratervezi az alakját, ha az ablak átméretezése.

Háttérben: A java UI, támogatás áttetszőség és alakú ablak volt sokáig a kereslet a Swing / AWT komponensek. A natív fejlesztés hozzáférést ezek a tulajdonságok állnak rendelkezésre hosszú ideig vissza. De ez nem volt hozzáférhető a core Java alkatrészek. A java6 tovább, támogatása áttetszőség és alakú ablak rendelkezésre áll. Még egy pixel szinten áttetszőség is támogat Java7.

Típusú támogatást biztosít áttetszőség és az átláthatóság: Jáva 7 támogatja a következő három típusú támogatást.

TRANSLUCENT: A funkció az ablak különböző színű, de ugyanolyan homály. Tehát az alfa értéke azonos minden képpont. Ez a hatás alkalmas fakulnak ki egy ablakot, majd fokozatosan csökken, és növeli az alfa értékét.

PERPIXEL_TRANSLUCENT: Ez a tulajdonság támogatja a különböző alfa értékek az ablak is. Ezzel a halványulni kijelölt terület az ablak.

PERPIXEL_TRANSPARENT: Ez a tulajdonság támogatja a különböző formájú ablakok helyett a hagyományos téglalap. Ha a per pixel átláthatóságot támogatja majd a különböző formák, mint a kör, háromszög hozható létre.

Mielőtt használja a fenti tulajdonságokat kell tesztelni támogatására alatt fekvő operációs rendszer. A teszt lehet tenni módszerrel isWindowTranslucencySupported tartozó osztály java.awt.GraphicsDevice. Tart a fajta átláthatóság bemeneti és true / false jelzi a támogatást.

Nézzük egy példa kód végrehajtása áttetszőség funkció. Ebben a példában létrehoztunk egy téglalap alakú áttetsző ablak a szöveges terület. Először letiltotta a díszítés mód, hogy a hatás az átláthatóság. Aztán ellenőriztük, ha az operációs rendszer támogatja-e vagy sem. Ha a támogatott a hatás látható a keretablaka.

Listing1: Minta mutatja áttetszőségét a JFrame ablak

importál java.awt.Color;

importál java.awt.GraphicsDevice;

importál java.awt.GraphicsEnvironment;

importál java.awt.GridBagLayout;

importál java.awt.event.ComponentAdapter;

importál java.awt.event.ComponentEvent;

importál java.awt.geom.Rectangle2D;

importál javax.swing.JFrame;

importál javax.swing.JTextArea;

importál javax.swing.SwingUtilities;

nyilvános osztály TransRecFrame kiterjed JFrame {

/**

* Létrehozása átlátszó négyszögletes keret 85% áttekinthetőség

*/

nyilvános TransRecFrame() {

szuper(“Áttetsző négyszögletes keret”);

//Set elrendezés

setLayout(új GridBagLayout());

//Hozz létre egy szöveges terület

utolsó JTextArea txtArea = új JTextArea(5, 50);

txtArea.setBackground(Szín.CYAN);

hozzáad(txtArea);

//Hívás tiltani dekoráció

setUndecorated(igaz);

 

//Hívás setShape átméretezni a forma, amikor widnow átméretezi

addComponentListener(új ComponentAdapter() {

@ Felülbírálása

nyilvános elvesztésével componentResized(ComponentEvent és) {

setShape(új Rectangle2D.Double(0, 0, getwidth(), getheight()));

}

});

//Az ablak 85% átlátszó

setOpacity(0.85f);

//Állítsa egyéb paraméterek

setLocationRelativeTo(nulla);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(igaz);

}

nyilvános statikus elvesztésével legfontosabb(Húr[] args) {

//Létrehozása grafikus környezet

Youth Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Ellenőrizze, hogy operációs rendszer támogatja Áttetszőség

ha (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“Operációs rendszer támogatja áttetszőség”);

új TransRecFrame();

}

}

}

Funkciókkal segíti áttetszőség és forma: A Java7 ott elsősorban három funkcióit támogatja áttetszőség és alakja egy ablak.

  • Teljes ablak áttetszőség: Ebben a megközelítésben a teljes ablak áttetsző.
  • Per pixel áttetszőség: Ebben a megközelítésben egy részét az ablak áttetsző
  • Alakú ablakok: Hogy a különböző alakú ablakok, mint ovale, kör, négyszögletes, stb.

Per pixel áttetszőség:

Már láttuk, hogyan lehet, hogy egy teljes ablak áttetsző az előző példában. Most meg fogja vitatni a második része, hogy egy sor pixel áttetsző segítségével a háttérszín. Vannak korlátozások végrehajtani ezt a forgatókönyvet. Az ablak nem lehet teljes képernyőn, és a rendszernek támogatnia kell pixel szinten áttetszőség. A többi az eljárás hasonló a fenti példában.

A következő példában látni fogjuk, hogy pixel szinten áttetszőség van állítva a keretben.

Listing2: Minta bemutatja pixel szintű átlátszóság támogatás.

importál javax.swing.*;

importál java.awt. *;

importál java.awt.event.ActionEvent;

importál java.awt.event.ActionListener;

nyilvános osztály PixelTranslucency kiterjed JFrame {

nyilvános PixelTranslucency() {

szuper(“Állítsa pixel szinten áttetszőség”);

//Állítsa mérete JFrame

setSize(250, 250);

//Set feküdt ki

getContentPane().setLayout(új GridLayout(6, 6));

//Pályázati pixel beállítás

mert(int i = 0; én < 16; i ){

hozzáad(új Pixel Panel(255 – én * 12));

}

//Adja meg a háttér és más tulajdonságait

setbackground(új Szín(0, 0, 0, 0));

setLocationRelativeTo(nulla);

setVisible(igaz);

}

nyilvános statikus elvesztésével legfontosabb(Húr[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Ellenőrizze, hogy ablak támogatja áttetszőség

ha (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Rendszer.ki.println(“Operációs rendszer támogatja áttetszőség”);

új PixelTranslucency();

}

} magán osztály Pixel Panel kiterjed JPanel {

magán Pixel Panel(int pixl) {

szuper();

setbackground(új Szín(0, 0, 255, pixl));

}

}

}

Alakú ablakok:

Most meg fogja vitatni egy másik fontos jellemzője támogatja Java7.The alakú ablak támogatja az összes formában, amit a követelménye a felhasználó. Ez a funkció segít létrehozni bármilyen alakú, mint a kör, háromszög, poligon vagy esetleges komplex alakja. A setShape módszer az ablak osztály áll rendelkezésre tulajdonság beállítása. De ismét meg kell emlékezni, hogy a teljes képernyős módban nem szabad megengedni, és az operációs rendszer támogatja áttetszőség.

A következő példa mutatja a használatát alakú ablak.

Listing3: A minta kód mutató használata alakú ablak.

importál javax.swing.*;

importál java.awt. *;

importál java.awt.geom.Ellipse2D;

importál java.awt.geom.GeneralPath;

nyilvános osztály JavaShapedWindow kiterjed JFrame {

nyilvános JavaShapedWindow() {

szuper(“Set alakú ablak”);

//Állítsa díszítetlen OFF, hogy hatással

setUndecorated(igaz);

//Állítsa be a képméretet

setSize(új Dimenzió(250, 250));

//Set poligon tulajdonságok

Polygon poligon = új Poligon();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Állítsa be az értékeket az alakzat

Ellipse2D.Double newCircle = új Ellipse2D.Double(0, 50, 1.0*100, 1.0*100);

//Állítsa be az általános utat tulajdonságok

GeneralPath gpath = új GeneralPath();

gpath.append(poligon, igaz);

gpath.append(newCircle, igaz);

//Meg az utat

setShape(gpath);

//Set box elrendezés

getContentPane().setLayout(új BoxLayout(getContentPane(), BoxLayout.X_AXIS));

hozzáad(Doboz.createHorizontalGlue());

//Létrehozása címke és állítsa tulajdonságok

JLabel newlabel = új JLabel(“Java alakú ablak”);

newlabel.setForeground(Szín.fehér);

hozzáad(newlabel);

hozzáad(Doboz.createHorizontalGlue());

//Állítsa tartalom ablaktáblára háttérszín

getContentPane().setbackground(Szín.cián);

//Hely beállítása

setLocationRelativeTo(nulla);

setVisible(igaz);

}

nyilvános statikus elvesztésével legfontosabb(Húr[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Ellenőrizze, OS támogatás erről az ingatlanról

ha (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Rendszer.ki.println(“Operációs rendszer támogatja áttetszőség”);

új JavaShapedWindow();

}

}

}

Azt is végrehajtja a kettőt funkciók, mint a áttetszőség és alakú ablak. Ennek megvalósításához, hívja setOpacity módszer a keret. Az eredmény ablakban megjelennek az együttes hatása. De nem szabad elfelejtenünk az operációs rendszernek támogatnia kell pixel szinten áttetszőség és pixel szintű átláthatóságot.

Következtetés:

Ebben a cikkben van fedett néhány új funkciók java7.The áttetszőség és alakú ablak funkciók valóban érdekes, és a Java UI komponensek rugalmasabb. De ugyanakkor nem szabad elfelejtenünk, hogy az operációs rendszer támogatja az összes ezeket a tulajdonságokat. Ellenkező esetben a hatás nem lesz látható. Így az alkalmazás maga is ellenőrzi az operációs rendszer támogatását, majd végrehajtja a hatás. A legújabb funkció a Java lehetővé teszi a fejlesztőknek, hogy a különböző típusú hatása a UI oldalon. Mint mindannyian tudjuk, hogy a megjelenés is fontos szempont minden UI alapú alkalmazás. Így a fejlesztő most felszerelt eszközöket, hogy a felhasználói felület több kellemes és vonzó.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share