Hvernig á að búa hálfgagnsær og lagaður Windows í Java?

Yfirlit: Í þessari grein munum við fjalla um gagnsæi og mismunandi lagaður glugga í Java. Í Java 7 sveifla styður þennan möguleika og gera sveifla UI hluti sveigjanlegri og notendavænt.

Inngangur: Í sumum umsókn, gagnsæ glugga er þörf til að styðja virkni þess. Nú í Java, gagnsæi getur verið hrint í framkvæmd. A hálfgagnsær glugga er búin með því að breyta ógagnsæi þess með því að innleiða aðferð sem kallast setOpacity á JFrame hluti. En við verðum að skilja að hálfgagnsær gluggi er aðeins mögulegt ef undirliggjandi stýrikerfi styður það. Og við þurfum líka að ganga úr skugga um að gluggi er ekki skreytt. Til að gera glugga undecorated, þú þarft að hringja setUndecorated (satt) aðferð. Sumir tíma sem það er einnig nauðsynlegt til að breyta lögun glugga HÍ. Að framkvæma það, við þurfum að hringja setShape aðferð innan componentResized aðferð. Það mun endurreikna lögun þegar gluggi er breytt.

Til baka jörð: Í Java HÍ, stuðning Gegnsæi og lagaður glugga var löngu eftirspurn eftir Swing / AWT hluti. Fyrir móðurmáli þróun aðgang að þessir eiginleikar eru í boði frá langan tíma aftur. En það var ekki aðgengileg algerlega Java hluti. Í Java6 og áfram, styðja fyrir gegnsæi og lagaður glugga er í boði. Jafnvel á pixla stigi gegnsæi er einnig styður í Java7.

Konar stuðning fyrir gegnsæi og gagnsæi: Java 7 styður eftirfarandi þrjú tegund stuðnings.

Hálfgagnsær: Í þessari aðgerð glugga getur haft mismunandi liti en með sams konar ógagnsæi. Svo er alfa gildið sama fyrir alla punkta. Þessi áhrif eru hentugur fyrir hverfa burt glugga og síðan smám saman minnkandi og eykur alfa gildi.

PERPIXEL_TRANSLUCENT: Þessi eign styður mismunandi gildi alfa innan gluggans. Þetta er notað til að hverfa valið svæði af the gluggi.

PERPIXEL_TRANSPARENT: Þessi eign styður mismunandi stærðum af gluggum fremur en hefðbundin rétthyrningur. Ef á gagnsæi pixla er studd svo mismunandi form eins hring, þríhyrningur er hægt að skapa.

Áður en við að nota eitthvað af ofangreindum eiginleikum við þurfum að prófa stuðning undir liggjandi stýrikerfi. Prófið er hægt að gera með því að nota aðferð isWindowTranslucencySupported tilheyra java.awt.GraphicsDevice flokki. Það tekur tegund gagnsæi sem inntak og skilar satt / ósatt til að sýna stuðning.

Leyfðu okkur að athuga sýnishorn merkjamál til að framkvæma gegnsæi lögun. Í þessu dæmi sem við höfum búið rétthyrnd hálfgagnsær glugga á textasvæðið. Fyrst við höfum gert skraut háttur til að fá áhrif gagnsæi. Þá höfum við kannað hvort undirliggjandi stýrikerfi styður það eða ekki. Ef stutt áhrifin eru sýnileg á ramma glugga.

Listing1: Dæmi sýna gegnsæi í JFrame glugga

flytja java.awt.Color;

flytja java.awt.GraphicsDevice;

flytja java.awt.GraphicsEnvironment;

flytja java.awt.GridBagLayout;

flytja java.awt.event.ComponentAdapter;

flytja java.awt.event.ComponentEvent;

flytja java.awt.geom.Rectangle2D;

flytja javax.swing.JFrame;

flytja javax.swing.JTextArea;

flytja javax.swing.SwingUtilities;

opinber flokki TransRecFrame nær JFrame {

/**

* Búa gagnsæ rétthyrnd ramma með 85% gagnsæi

*/

opinber TransRecFrame() {

frábær(“Hálfgagnsær Rétthyrnd Frame”);

//Setja skipulag

setLayout( GridBagLayout());

//Búa til texta svæði

Endanleg JTextArea txtArea = JTextArea(5, 50);

txtArea.setBackground(Litur.Cyan);

bæta(txtArea);

//Hringja til að gera skraut

setUndecorated(satt);

 

//Kalla setShape að búa lögun þegar widnow er breytt

addComponentListener( ComponentAdapter() {

@ Stöðuhnekking

opinber ógilt componentResized(ComponentEvent og) {

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

}

});

//Gerðu glugga 85% gagnsæ

setOpacity(0.85F);

//Setja aðrar breytur

setLocationRelativeTo(núll);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(satt);

}

opinber truflanir ógilt Helstu(Band[] viðföng) {

//Búa grafík umhverfi

Youth Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Athugaðu hvort OS styður Gegnsæi

ef (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Hálfgagnsær)) {

System.out.println(“OS styður gegnsæi”);

TransRecFrame();

}

}

}

Aðgerðir til að styðja gegnsæi og lögun: Í Java7 eru aðallega þrjár aðgerðir til að styðja gegnsæi og lögun glugga.

  • Full glugga Gegnsæi: Í þessari nálgun fullur gluggi er hálfgagnsær.
  • Per gegnsæi pixla: Í þessari nálgun er hluti af glugganum er hálfgagnsær
  • Lagaður glugga: Gera mismunandi lagaður glugga eins ovale, hring, rétthyrnd o.fl..

Per gegnsæi pixla:

Við höfum þegar séð hvernig á að gera a heill glugga hálfgagnsær í fyrra dæmi. Nú ætlum við að ræða seinni hluta gera sett af dílar hálfgagnsær með bakgrunnslit þeirra. Það eru nokkrar takmarkanir að framkvæma þessa atburðarás. Glugginn ætti ekki að vera fullur skjár og kerfið verður að styðja pixla stigi gegnsæi. The hvíla af the aðferð er svipað dæminu hér að ofan.

Í eftirfarandi dæmi við munum sjá hvernig pixla stigi Gegnsæi er sett í ramma.

Listing2: Dæmi sýna pixla stigi Gegnsæi stuðningur.

flytja javax.swing.*;

flytja java.awt. *;

flytja java.awt.event.ActionEvent;

flytja java.awt.event.ActionListener;

opinber flokki PixelTranslucency nær JFrame {

opinber PixelTranslucency() {

frábær(“Setja pixla stigi gegnsæi”);

//Setja stærð JFrame

setSize(250, 250);

//Setja lá út

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

//Kalla fyrir stillingu pixla

fyrir(int i = 0; ég < 16; ég ){

bæta( Pixel Panel(255 – ég * 12));

}

//Setja bakgrunn og aðrar eignir

setBackground( Litur(0, 0, 0, 0));

setLocationRelativeTo(núll);

setVisible(satt);

}

opinber truflanir ógilt Helstu(Band[] viðföng) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Athugaðu hvort gluggi styður Gegnsæi

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

System.út.println(“OS styður gegnsæi”);

PixelTranslucency();

}

} einkaaðila flokki Pixel Panel nær JPanel {

einkaaðila Pixel Panel(int pixl) {

frábær();

setBackground( Litur(0, 0, 255, pixl));

}

}

}

Lagaður Windows:

Nú ætlum við að ræða um annar mikilvægur þáttur styður Java7.The lagaður glugga styður allar gerðir af stærðum Hvað sem kröfur um notanda. Þessi eiginleiki hjálpar þér að búa til hvaða form eins hring, þríhyrningur, marghyrning eða hugsanleg flókið form. The setShape aðferð glugga Námskeiðið er í boði til að stilla eign. En aftur að við verðum að muna að fullur skjár háttur ætti ekki að vera heimilt og stýrikerfi styður gegnsæi.

Eftirfarandi dæmi sýnir notkun af lagaður glugga.

Listing3: Sýnið kóða sem sýnir notkun lagaður glugga.

flytja javax.swing.*;

flytja java.awt. *;

flytja java.awt.geom.Ellipse2D;

flytja java.awt.geom.GeneralPath;

opinber flokki JavaShapedWindow nær JFrame {

opinber JavaShapedWindow() {

frábær(“Setja lagaður glugga”);

//Setja undecorated OFF að fá áhrif

setUndecorated(satt);

//Velja stærð

setSize( Dimension(250, 250));

//Setja marghyrning eignir

Marghyrning marghyrning = Marghyrning();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Setja gildi laginu

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

//Setja almennar eignir slóð

GeneralPath gpath = GeneralPath();

gpath.append(marghyrning, satt);

gpath.append(newCircle, satt);

//Stilltu leið

setShape(gpath);

//Setja kassi skipulag

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

bæta(Box.createHorizontalGlue());

//Búa merki og setja eiginleika

JLabel newlabel = JLabel(“Java lagaður glugga”);

newlabel.setForeground(Litur.hvítt);

bæta(newlabel);

bæta(Box.createHorizontalGlue());

//Setja innihald megin bakgrunnslit

getContentPane().setBackground(Litur.cyan);

//Stilla staðsetningu

setLocationRelativeTo(núll);

setVisible(satt);

}

opinber truflanir ógilt Helstu(Band[] viðföng) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Athugaðu OS stuðning fyrir þessa eign

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

System.út.println(“OS styður gegnsæi”);

JavaShapedWindow();

}

}

}

Við getum einnig framkvæma sambland af tveimur eiginleikum eins gegnsæi og lagaður glugga. Til að framkvæma þetta, kalla setOpacity aðferð til rammanum. Niðurstaðan gluggi vilja sýna samanlögð áhrif. En við ættum að muna undirliggjandi stýrikerfi verður að styðja pixla stigi gegnsæi og pixla stigi gagnsæi.

Ályktun:

Í þessari grein höfum við fjallað nokkrum nýjum möguleikum í java7.The gegnsæi og lagaður lögun glugga eru mjög áhugaverð og gera java UI hluti sveigjanlegri. En á sama tíma verðum við að muna að undirliggjandi stýrikerfi ætti að styðja alla þessa eiginleika. Annars áhrif mun ekki vera sýnilegur. Svo í umsókninni sjálfri við athuga OS stuðning og þá framkvæma áhrif. Nýjasta lögun af Java gerir verktaki til að búa til mismunandi gerðir af áhrifum á HÍ hlið. Eins og við vitum öll að útlit og feel er mikilvægur þáttur í öllum HÍ undirstaða umsókn. Svo verktaki er nú búin með verkfærum til að gera HÍ meira notalegt og aðlaðandi.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share