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(ný GridBagLayout());
//Búa til texta svæði
Endanleg JTextArea txtArea = ný 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(ný ComponentAdapter() {
@ Stöðuhnekking
opinber ógilt componentResized(ComponentEvent og) {
setShape(ný 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”);
ný 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(ný GridLayout(6, 6));
//Kalla fyrir stillingu pixla
fyrir(int i = 0; ég < 16; ég ){
bæta(ný Pixel Panel(255 – ég * 12));
}
//Setja bakgrunn og aðrar eignir
setBackground(ný 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”);
ný PixelTranslucency();
}
} einkaaðila flokki Pixel Panel nær JPanel {
einkaaðila Pixel Panel(int pixl) {
frábær();
setBackground(ný 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(ný Dimension(250, 250));
//Setja marghyrning eignir
Marghyrning marghyrning = ný Marghyrning();
polygon.addPoint(0, 100);
polygon.addPoint(50, 0);
polygon.addPoint(100, 100);
//Setja gildi laginu
Ellipse2D.Double newCircle = ný Ellipse2D.Double(0, 50, 1.0*100, 1.0*100);
//Setja almennar eignir slóð
GeneralPath gpath = ný GeneralPath();
gpath.append(marghyrning, satt);
gpath.append(newCircle, satt);
//Stilltu leið
setShape(gpath);
//Setja kassi skipulag
getContentPane().setLayout(ný BoxLayout(getContentPane(), BoxLayout.X_AXIS));
bæta(Box.createHorizontalGlue());
//Búa merki og setja eiginleika
JLabel newlabel = ný 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”);
ný 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.