Kuidas luua Läbipaistev ja Shaped Windows Java?

Ülevaade: Selles artiklis me arutada umbes läbipaistvus ja erineva kujuga aknad Java. Java 7 kiik toetab seda funktsiooni ja teha kiik UI komponente paindlikumaks ja kasutajasõbralikumaks.

Sissejuhatus: Mõnel taotlus, läbipaistev aken on nõue, et toetada selle funktsionaalsus. Nüüd Java, läbipaistvus on võimalik rakendada. Läbipaistev aken, kus on loodud, muutes selle läbipaistmatus, rakendades meetodit nimetatakse setOpacity kohta JFrame osa. Kuid me peame mõistma, et poolläbipaistev aken on võimalik ainult siis, kui operatsioonisüsteemi toetab see. Ja meil on ka vaja veendumaks, et akent ei kaunistatud. Et aken undecorated, sul on vaja helistada setUndecorated (tõsi) meetod. Mõni aeg see on vaja ka muuta kuju akna UI. Seda rakendada, meil on vaja helistada setShape meetod jooksul componentResized meetod. Ta arvutab kuju kui ka akna suuruse muutmisel.

Tagasi maa: Java UI, toetust poolläbipaistvusele ja kujuga aken oli kaua aega nõudlus Swing / AWT komponendid. Emakeelena arengu juurdepääs need omadused on saadaval kaua tagasi. Aga see ei olnud kättesaadav core Java komponendid. In java6 edasi, toetada poolläbipaistvusele ja kujuga aken on saadaval. Isegi ühe piksli tasandil Läbipaistvus toetab ka Java7.

Tüüp toetust poolläbipaistvusele ja läbipaistvus: Java 7 toetab järgmise kolme liiki toetust.

TRANSLUCENT: Selle funktsiooni aken võib olla erinevat värvi, kuid samal tasemel läbipaistmatus. Nii alfa väärtus on sama kõigi pikslite. See efekt sobib fade off akna ja seejärel järk-järgult väheneb ja suureneb alfa väärtus.

PERPIXEL_TRANSLUCENT: See majutusasutus toetab erinevaid alfa väärtuste akna enda. Seda kasutatakse tuhmuma Valitud piirkond akna.

PERPIXEL_TRANSPARENT: See majutusasutus toetab erikujulised aknad, mitte traditsiooniline ristkülik. Kui piksli kohta läbipaistvust toetab siis erineva kujuga nagu ring, kolmnurk on võimalik luua.

Enne kui me kasutada mõnda eespool nimetatud omadused peame testida toetuseks all lamades operatsioonisüsteemi. Katse võib teha ka meetodi isWindowTranslucencySupported kuuluvad java.awt.GraphicsDevice klass. See võtab tüüpi läbipaistvuse sisend ja tagastab true / false näidata toetust.

Olgem vaadata proovi kood rakendada poolläbipaistvusele funktsioon. Selles näites, oleme loonud ristkülikukujuline läbipaistev aken teksti ala. Esiteks on meil keelatud teenetemärgi ¾ saada mõju läbipaistvuse. Siis oleme kontrollinud, kui operatsioonisüsteemi toetab seda või mitte. Kui toetatud mõju on nähtav raam akna.

Listing1: Proovi näitab poolläbipaistvuse JFrame aknas

importima java.awt.Color;

importima java.awt.GraphicsDevice;

importima java.awt.GraphicsEnvironment;

importima java.awt.GridBagLayout;

importima java.awt.event.ComponentAdapter;

importima java.awt.event.ComponentEvent;

importima java.awt.geom.Rectangle2D;

importima javax.swing.JFrame;

importima javax.swing.JTextArea;

importima javax.swing.SwingUtilities;

avalik klass TransRecFrame laieneb JFrame {

/**

* Loo läbipaistev ristkülikukujuline raam 85% läbipaistvus

*/

avalik TransRecFrame() {

super(“Läbipaistev Kandilised Frame”);

//Määra paigutus

setLayout(uus GridBagLayout());

//Loo teksti ala

lõplik JTextArea txtArea = uus JTextArea(5, 50);

txtArea.setBackground(Värv.CYAN);

lisama(txtArea);

//Helista blokeerida kaunistamine

setUndecorated(tõsi);

 

//Helista setShape suurust kuju, kui widnow mõõtudeks

addComponentListener(uus ComponentAdapter() {

@ Alistamine

avalik tühine componentResized(ComponentEvent ja) {

setShape(uus Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//Tee aken 85% läbipaistev

setOpacity(0.85f);

//Määra muud parameetrid

setLocationRelativeTo(null);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(tõsi);

}

avalik staatiline tühine põhiline(String[] args) {

//Loo graafika keskkond

Youth Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Kontrollige, kas OS toetab Poolläbipaistvus

kui (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS toetab poolläbipaistvusele”);

uus TransRecFrame();

}

}

}

Funktsioone toetada poolläbipaistvusele ja kuju: In Java7 on peamiselt kolm funktsioone toetada poolläbipaistvusele ja kuju aknas.

  • Full aken poolläbipaistvusele: Selle lähenemisviisi kogu akna on poolläbipaistvad.
  • Piksli kohta poolläbipaistvusele: Selle lähenemisviisi akna osa on poolläbipaistvad
  • Shaped aknad: Tee erineva kujuga aknad nagu ovale, ring, ristkülikukujuline jne.

Piksli kohta poolläbipaistvusele:

Me oleme juba näinud, kuidas teha täielik akna poolläbipaistev eelmises näites. Nüüd me arutada teise osa tegemise komplekt pikslit poolläbipaistev kasutades oma taustavärvi. On mõned piirangud sellise stsenaariumi. Aken ei tohiks täisekraani ja süsteem peab toetama pixel tasandil poolläbipaistvusele. Ülejäänud protseduur on sarnane ülaltoodud näites.

Järgnevas näites näeme, kuidas pikslihaaval Läbipaistvus raamima.

Listing2: Proovi näitab pikslite tase poolläbipaistvusele toetust.

importima javax.swing.*;

importima java.awt. *;

importima java.awt.event.ActionEvent;

importima java.awt.event.ActionListener;

avalik klass PixelTranslucency laieneb JFrame {

avalik PixelTranslucency() {

super(“Määra pikslihaaval poolläbipaistvusele”);

//Määra suurus JFrame

setSize(250, 250);

//Määra panema

getContentPane().setLayout(uus GridLayout(6, 6));

//Küsi pixel seade

eest(int i = 0; mina < 16; i ){

lisama(uus Pixel Panel(255 – mina * 12));

}

//Määra taust ja muud omadused

setBackground(uus Värv(0, 0, 0, 0));

setLocationRelativeTo(null);

setVisible(tõsi);

}

avalik staatiline tühine põhiline(String[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Kontrollige, kas aken toetab poolläbipaistvus

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

Süsteem.välja.println(“OS toetab poolläbipaistvusele”);

uus PixelTranslucency();

}

} era- klass Pixel Panel laieneb JPanel {

era- Pixel Panel(int pixl) {

super();

setBackground(uus Värv(0, 0, 255, pixl));

}

}

}

Shaped Windows:

Nüüd me arutleda veel üks oluline funktsioon toetab Java7.The kujuline aken toetab kõiki kujundeid iganes olla nõuet kasutaja. See funktsioon aitab teil luua mistahes kujuga nagu ring, kolmnurk, hulknurk või võimalike keerulise kujuga. SetShape meetod akna klass on olemas, milles vara. Aga jälle peame meeles pidama, et täisekraanil ei tohiks lubada ja operatsioonisüsteem toetab poolläbipaistvusele.

Järgmises näites kasutamine kujuline aken.

Listing3: Proovi kood näitab kasutamine kujuline aken.

importima javax.swing.*;

importima java.awt. *;

importima java.awt.geom.Ellipse2D;

importima java.awt.geom.GeneralPath;

avalik klass JavaShapedWindow laieneb JFrame {

avalik JavaShapedWindow() {

super(“Määra kujuline Window”);

//Määra undecorated OFF saada mõju

setUndecorated(tõsi);

//Valige suurus

setSize(uus Mõõde(250, 250));

//Määra hulknurk omadused

Polygon hulknurk = uus Hulknurk();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Seadke väärtused kuju

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

//Kehtestada üldised tee omadused

GeneralPath gpath = uus GeneralPath();

gpath.append(hulknurk, tõsi);

gpath.append(newCircle, tõsi);

//Määra tee

setShape(gpath);

//Määra kasti paigutus

getContentPane().setLayout(uus BoxLayout(getContentPane(), BoxLayout.X_AXIS));

lisama(Kast.createHorizontalGlue());

//Loo silt ja komplekti omadusi

JLabel newlabel = uus Jlabel(“Java Shaped aknas”);

newlabel.setForeground(Värv.valge);

lisama(newlabel);

lisama(Kast.createHorizontalGlue());

//Määra sisupaanilt taustavärvi

getContentPane().setBackground(Värv.cyan);

//Püügikoht

setLocationRelativeTo(null);

setVisible(tõsi);

}

avalik staatiline tühine põhiline(String[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Kontrollige OS toetust selle kinnisvara

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

Süsteem.välja.println(“OS toetab poolläbipaistvusele”);

uus JavaShapedWindow();

}

}

}

Samuti saame rakendada kombinatsioon kahest omadused nagu poolläbipaistvusele ja kujuga aken. Rakendada seda, helistada setOpacity meetod oma raam. Tulemuseks aken kuvab koosmõju. Aga me ei tohi unustada, operatsioonisüsteemi peab toetama pixel tasandil poolläbipaistvusele ja piksli tasandil läbipaistvuse.

Järeldus:

Käesolevas artiklis me ei hõlma mõned uued funktsioonid java7.The poolläbipaistvusele ja kujuga aken funktsioonid on tõesti huvitav ja teha java UI komponente paindlikumaks. Aga samal ajal peame meeles pidama, et operatsioonisüsteemi peaks toetama kõiki neid omadusi. Vastasel mõju ei ole nähtav. Nii taotluses me kontrollida OS tugi ja seejärel rakendada mõju. Hiljemalt funktsiooni java võimaldab arendajatel luua eri liiki mõju UI pool. Nagu me kõik teame, et ilme ja on oluline aspekt tahes UI põhine rakendus. Nii arendaja on nüüd varustatud vahendid, et muuta UI meeldiv ja atraktiivne.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share