Conas a chruthú Windows Tréshoilseach agus múnlaithe i Java?

Forbhreathnú: San Airteagal seo, beimid ag plé faoi an trédhearcacht agus fuinneoga múnlaithe éagsúla i Java. I java 7 Tacaíonn swing an ghné seo agus ag déanamh comhpháirteanna Chomhéadain swing níos solúbtha agus éasca le húsáid.

Réamhrá: I roinnt iarratas, Tá fuinneog trédhearcach riachtanas chun tacú lena feidhmiúlacht. Anois i Java, Is féidir le trédhearcacht a chur i bhfeidhm. Tá fuinneog tréshoilseach cruthaithe trí athrú a dhéanamh teimhneachta trí chur i bhfeidhm modh ar a dtugtar setOpacity ar comhpháirt JFrame. Ach ní mór dúinn a thuiscint go bhfuil fuinneog tréshoilseach féidir ach amháin má thacaíonn an córas oibriúcháin is bun é. Agus ní mór dúinn freisin chun a chinntiú go bhfuil an fhuinneog maisithe. Chun é a dhéanamh fuinneog neamh-mhaisithe, is gá duit a glaoch setUndecorated (fíor) modh. Roinnt ama tá sé riachtanach freisin a athrú ar an cruth Chomhéadain fuinneog. A chur i bhfeidhm, ní mór dúinn a ghlaoch modh setShape laistigh den mhodh componentResized. Beidh sé a athríomh an cruth nuair a bhíonn an fhuinneog resized.

Talamh ar ais: I java Chomhéadain, Bhí tacaíocht a thabhairt do translucency agus múnlaithe fuinneog éileamh fada an lá do Swing / AWT comhpháirteanna. Le rochtain forbartha dúchais a bhfuil na maoine ar fáil ó am fada ar ais. Ach ní raibh sé inrochtana do chroí comhpháirteanna java. I Java6 ar aghaidh, tacaíocht a thabhairt do translucency agus tá fuinneog múnlaithe ar fáil. Fiú amháin in aghaidh an translucency leibhéal picteilín Tá tacaíocht i Java7 freisin.

Cineál na tacaíochta do translucency agus trédhearcacht: Java 7 Tacaíonn na trí chineál seo a leanas de thacaíocht.

Tréshoilseach: Sa ghné seo is féidir an fhuinneog a bheith dathanna éagsúla ach leis an leibhéal céanna maidir le teimhneacht. Mar sin, tá an luach céanna alfa do na pixel. Is é seo an éifeacht oiriúnach do céimnithe amach ar fhuinneog agus ansin laghduithe de réir a chéile agus méadaíonn an luach alfa.

PERPIXEL_TRANSLUCENT: Tacaíonn an mhaoin luachanna alfa éagsúla laistigh den fhuinneog féin. Tá sé seo úsáid a céimnithe réigiún roghnaithe na fuinneoige.

PERPIXEL_TRANSPARENT: Tacaíonn an mhaoin cruthanna éagsúla de fuinneoga seachas dronuilleog traidisiúnta. Más rud é in aghaidh an trédhearcacht picteilín tá tacaíocht ansin cruthanna éagsúla cosúil le ciorcal, Is féidir triantán a chruthú.

Sula úsáid againn aon cheann de na hairíonna thuas ní mór dúinn a thástáil an tacaíocht faoin gcóras oibriúcháin atá suite. Is féidir an tástáil a dhéanamh trí úsáid a bhaint as modh isWindowTranslucencySupported bhaineann leis an rang java.awt.GraphicsDevice. Bíonn sé an cineál na trédhearcachta mar ionchur agus tuairisceáin fíor / bréagach a chur in iúl ar an tacaíocht.

Lig dúinn a sheiceáil le cód sampla a chur i bhfeidhm an gné translucency. Sa sampla seo, ní mór dúinn a cruthaíodh fuinneog tréshoilseach dronuilleogach ar limistéar téacs. An Chéad ní mór dúinn faoi mhíchumas ar an modh maisiú a fháil ar an éifeacht na trédhearcachta. Ansin, ní mór dúinn a sheiceáil má thacaíonn an córas oibriúcháin is bun é nó nach. Má thacaigh is é an éifeacht le feiceáil ar an fráma fuinneoige.

Listing1: Sampla translucency ag taispeáint d'fhuinneog JFrame

allmhairiú java.awt.Color;

allmhairiú java.awt.GraphicsDevice;

allmhairiú java.awt.GraphicsEnvironment;

allmhairiú java.awt.GridBagLayout;

allmhairiú java.awt.event.ComponentAdapter;

allmhairiú java.awt.event.ComponentEvent;

allmhairiú java.awt.geom.Rectangle2D;

allmhairiú javax.swing.JFrame;

allmhairiú javax.swing.JTextArea;

allmhairiú javax.swing.SwingUtilities;

poiblí rang TransRecFrame Síneann JFrame {

/**

* Cruthaigh fráma dronuilleogach trédhearcach 85% trédhearcacht

*/

poiblí TransRecFrame() {

Super(“Fráma Dronuilleogach tréshoilseach”);

//Socraigh leagan amach

setLayout(nua GridBagLayout());

//Cruthaigh réimse téacs

deiridh JTextArea txtArea = nua JTextArea(5, 50);

txtArea.setBackground(Dath.Cian);

cuir(txtArea);

//Glaoigh maisiú a chur ar ceal

setUndecorated(fíor);

 

//Cuir glaoch ar setShape chun Athraigh an cruth nuair a widnow Tá athrú méide

addComponentListener(nua ComponentAdapter() {

@ Sáraigh

poiblí neamhní componentResized(ComponentEvent agus) {

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

}

});

//Déan an fhuinneog 85% trédhearcach

setOpacity(0.85f);

//Socraigh paraiméadair eile

setLocationRelativeTo(náid);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(fíor);

}

poiblí statach neamhní príomh-(Teaghrán[] comhbhrí leis an rogha) {

//Cruthaigh grafaicí timpeallacht

Óige Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Seiceáil má thacaíonn OS Translucency

más rud é go (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Tréshoilseach)) {

System.out.println(“OS Tacaíonn translucency”);

nua TransRecFrame();

}

}

}

Gnéithe chun tacú le translucency agus cruth: Sa Java7 tá go príomha trí gnéithe atá ar fáil chun tacú le translucency agus cruth fuinneog.

  • Translucency fhuinneog Full: Sa chur chuige seo tá fuinneog tréshoilseach iomlán.
  • Per translucency picteilín: Sa chur chuige seo Is cuid den fhuinneog tréshoilseach
  • Fuinneoga múnlaithe: Déan fuinneoga múnlaithe éagsúla cosúil le ovale, ciorcal, dronuilleogach, etc.

Per translucency picteilín:

Tá feicthe againn cheana féin conas a dhéanamh tréshoilseach fuinneog iomlán sa sampla roimhe seo. Anois, beidh muid ag plé a dhéanamh ar an dara cuid de a dhéanamh le sraith de pixel tréshoilseach trí úsáid a bhaint as a n-dath cúlra. Tá roinnt teorainneacha a chur i bhfeidhm scéal seo. Níor chóir an fhuinneog a bheith scáileán iomlán agus ní mór an córas seo le translucency leibhéal picteilín. Is é an chuid eile den nós imeachta cosúil leis an sampla thuas.

Sa sampla seo a leanas beidh muid a fheiceáil conas a translucency leibhéal picteilín leagtha i bhfráma.

Listing2: Sampla a léiríonn picteilín tacaíocht translucency leibhéal.

allmhairiú javax.swing.*;

allmhairiú java.awt. *;

allmhairiú java.awt.event.ActionEvent;

allmhairiú java.awt.event.ActionListener;

poiblí rang PixelTranslucency Síneann JFrame {

poiblí PixelTranslucency() {

Super(“Socraigh translucency leibhéal picteilín”);

//Socraigh méid na JFrame

setSize(250, 250);

//Socraigh leagan amach

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

//Glaoch ar leagan picteilín

le haghaidh(int i = 0; i < 16; i ){

cuir(nua Painéal picteilíní(255 – i * 12));

}

//Socraigh cúlra agus airíonna eile

setBackground(nua Dath(0, 0, 0, 0));

setLocationRelativeTo(náid);

setVisible(fíor);

}

poiblí statach neamhní príomh-(Teaghrán[] comhbhrí leis an rogha) {

Óige Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Seiceáil má thacaíonn fhuinneog translucency

más rud é go (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Córas.amach.println(“OS Tacaíonn translucency”);

nua PixelTranslucency();

}

} príobháideach rang Painéal picteilíní Síneann JPanel {

príobháideach Painéal picteilíní(int pixl) {

Super();

setBackground(nua Dath(0, 0, 255, pixl));

}

}

}

Windows múnlaithe:

Anois, beimid ag plé faoi ghné thábhachtach eile le tacaíocht ó fhuinneog múnlaithe Java7.The tacaíocht do gach cineál cruthanna rud é an ceanglas de chuid an úsáideoir. Cuidíonn an gné seo leat a chruthú ar aon cruth cosúil le ciorcal, triantán, polagán nó aon cruth casta is féidir. Is é an modh setShape an rang fhuinneog atá ar fáil a shocrú ar an maoin. Ach arís ní mór dúinn a mheabhrú nár chóir go mbeadh cead mód scáileán iomlán agus tacaíonn an córas oibriúcháin translucency.

Léiríonn an sampla seo a leanas an úsáid fhuinneog múnlaithe.

Listing3: An cód samplacha dtaispeántar an úsáid na fuinneoige múnlaithe.

allmhairiú javax.swing.*;

allmhairiú java.awt. *;

allmhairiú java.awt.geom.Ellipse2D;

allmhairiú java.awt.geom.GeneralPath;

poiblí rang JavaShapedWindow Síneann JFrame {

poiblí JavaShapedWindow() {

Super(“Socraigh Fuinneog chruthach”);

//Socraigh neamh-mhaisithe Off a fháil ar éifeacht

setUndecorated(fíor);

//Socraigh méid

setSize(nua Toise(250, 250));

//Socraigh airíonna polagán

Polagán = polagán nua Polagán();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Socraigh luachanna na cruth

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

//Socraigh airíonna cosán ginearálta

GeneralPath gpath = nua GeneralPath();

gpath.append(polagán, fíor);

gpath.append(newCircle, fíor);

//Socraigh an cosán

setShape(gpath);

//Socraigh leagan amach bosca

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

cuir(Bosca.createHorizontalGlue());

//Cruthaigh airíonna lipéad agus a leagtar

JLabel newlabel = nua JLabel(“Java fuinneog múnlaithe”);

newlabel.setForeground(Dath.bán);

cuir(newlabel);

cuir(Bosca.createHorizontalGlue());

//Socraigh ábhar dath an chúlra phána

getContentPane().setBackground(Dath.cian);

//Socraigh suíomh

setLocationRelativeTo(náid);

setVisible(fíor);

}

poiblí statach neamhní príomh-(Teaghrán[] comhbhrí leis an rogha) {

Óige Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Seiceáil Tacaíocht OS don mhaoin seo

más rud é go (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Córas.amach.println(“OS Tacaíonn translucency”);

nua JavaShapedWindow();

}

}

}

Is féidir linn a chur i bhfeidhm chomh maith le meascán de dhá gnéithe cosúil translucency agus múnlaithe fuinneog. A chur i bhfeidhm an, modh setOpacity glaoch le do fráma. Beidh an fhuinneog toradh ar taispeáint ar an éifeacht chomhcheangailte. Ach ba chóir dúinn cuimhneamh ní mór an córas oibriúcháin is bun tacú le translucency leibhéal picteilín agus trédhearcacht leibhéal picteilín.

Conclúid:

San Airteagal seo, ní mór dúinn clúdaithe roinnt gnéithe nua i translucency java7.The agus tá gnéithe fuinneog múnlaithe i ndáiríre suimiúil agus a dhéanamh java comhpháirteanna Chomhéadain níos solúbtha. Ach ag an am céanna ní mór dúinn cuimhneamh gur chóir go mbeadh an córas oibriúcháin is bun tacú leis na hairíonna go léir. Seachas sin ní bheidh an éifeacht a bheith le feiceáil. Mar sin, i gcur i bhfeidhm féin táimid ag seiceáil an tacaíocht OS agus ansin i bhfeidhm ar an éifeacht a. Ceadaíonn an ghné is déanaí de java na forbróirí a chruthú cineálacha éagsúla i bhfeidhm ar an taobh Chomhéadain. Mar a fhios againn go léir go bhfuil cuma agus mothú gné thábhachtach d'aon iarratas bunaithe Chomhéadain. Mar sin, tá an forbróir feistithe anois le huirlisí a dhéanamh ar an Chomhéadain níos taitneamhaí agus tarraingteach.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share