Yuav ua li cas rau tsim Translucent thiab zoo li tus qhov rais rau hauv Java?

Txheej txheem cej luam: Nyob rau cov tshooj no peb yuav tham txog qhov transparency thiab txawv zoo li tus qhov rais rau hauv Java. Nyob rau hauv java 7 viav txhawb no feature thiab ua viav UI Cheebtsam saj zawg zog ntxiv thiab cov neeg siv tus phooj ywg.

Taw qhia: Nyob rau hauv tej ntaub ntawv, pob tshab cov qhov rais yog tus yuav tsum tau pab txhawb nws cov functionality. Tam sim no nyob rau Java, transparency yuav muab los siv. Translucent qhov rais yog tsim los ntawm kev Process lub opacity uas yog ib txoj kev uas hu ua setOpacity nyob ib JFrame tivthaiv. Tab sis peb yuav tsum to taub tias qhov rais translucent yog xwb tej zaum yog lawv operating lwm txhawb nws. Thiab peb kuj xav kom paub tseeb tias qhov rais yog tsis decorated. Yuav ua rau lub qhov rais undecorated, koj yuav tau hu rau setUndecorated (tseeb) txujci. Qee lub sij hawm nws kuj yuav tsum tau hloov qhov zoo ntawm qhov rais povhwm poob haujlwm. Kom muaj kev rau nws, peb yuav tau hu rau txoj kev setShape nyob rau hauv lub componentResized txujci. Nws yuav txheeb peev tus zoo thaum uas cov qhov rais yog resized.

Av rov tom qab: Nyob rau hauv java povhwm poob haujlwm, kev them nyiaj yug rau translucency thiab qhov rais zoo li tus ntawd ntev thov rau viav/AWT Cheebtsam. Rau hom kev siv cov khoom no muaj nyob rau ntawm lub caij nyoog ntev los rov qab. Tiam sis yog tsis yoojyim rau tub ntxhais java Cheebtsam. Nyob rau hauv Java6 tom ntej, kev them nyiaj yug rau translucency thiab qhov rais zoo li tus no muaj. Txawm ib pixel qib translucency tseem txhawb zog hauv Java7.

Hom kev them nyiaj yug rau translucency thiab transparency: Java 7 txhawb no peb hom kev them nyiaj yug.

TRANSLUCENT: Hauv no feature qhov rais tau muaj xim sib txawv tiam sis nrog rau tib theem li cov opacity. Thiaj li yog tus nqi alpha tib yam rau txhua tus pixels. Cov nyhuv no yog tsim kom thim tawm ntawm qhov rais thiab ces maj decreases thiab tsub kom tus nqi alpha.

PERPIXEL_TRANSLUCENT: Cov cuab yeej no txhawb txawv cov alpha qhov tseem ceeb nyob rau hauv lub qhov rai xwb. Qhov no yuav muab siv los ploj xaiv tej thaj chaws ntawm cov qhov rai.

PERPIXEL_TRANSPARENT: Cov cuab yeej no txhawb sib rho los ntawm qhov rais es tsoos duab plaub. Yog hais tias ib tug pixel transparency txhawb kev ces nyias daim zoo li lub vajvoog, yuav tsum tsim daim duab peb sab.

Ua ntej peb yuav siv tej yam khoom saum toj no uas peb yuav tsum kuaj cov nyiaj them yug rau hauv lub dag zog operating. Txoj kev kuaj no yuav ua tau los ntawm kev siv txoj kev isWindowTranslucencySupported java.awt.GraphicsDevice hoob kawm tug. Nws yuav siv hom transparency raws li cov tswv yim thiab rov tseeb/tsis tseeb los qhia tias cov kev them nyiaj yug.

Peb cia saib ib tug qauv code kom siv cov translucency feature. Hauv qhov ua piv txwv peb tau tsim ib lub qhov rai translucent nyob rau hauv cheeb tsam ib phau ntawv. Ua ntej peb muaj neeg rau xiam qhov kho kom zoo nkauj hom txais cov nyhuv ntawm transparency. Ces peb tau ntsuam xyuas yog hais tias lawv operating lwm txhawb nws los tsis. Yog koj txaus siab rau cov nyhuv yog pib tshwm rau tus ua num qhov rai.

Listing1: Qauv uas qhia txog qhov rais JFrame Translucency

ntshuam java.awt.Color;

ntshuam java.awt.GraphicsDevice;

ntshuam java.awt.GraphicsEnvironment;

ntshuam java.awt.GridBagLayout;

ntshuam java.awt.event.ComponentAdapter;

ntshuam java.awt.event.ComponentEvent;

ntshuam java.awt.geom.Rectangle2D;

ntshuam javax.swing.JFrame;

ntshuam javax.swing.JTextArea;

ntshuam javax.swing.SwingUtilities;

pej xeem hoob TransRecFrame extends JFrame {

/**

* Tsim ib pob tshab ib kablus nrog 85% transparency

*/

pej xeem TransRecFrame() {

super(“Translucent lub ncej”);

//Teem caij layout

setLayout(tshiab GridBagLayout());

//Tsim ib tug ntawv hauv cheeb tsam

Thaum kawg JTextArea txtArea = tshiab JTextArea(5, 50);

txtArea.setBackground(Xim.CYAN);

ntxiv(txtArea);

//Hu xov tooj mus lov tes taw kho kom zoo nkauj

setUndecorated(tseeb);

 

//Hu rau setShape los resize lub puab thaum widnow yog resized

addComponentListener(tshiab ComponentAdapter() {

@Override

pej xeem khoob lug componentResized(ComponentEvent e) {

setShape(tshiab Rectangle2D.double(0, 0, getWidth(), getHeight()));

}

});

//Ua rau lub qhov rais 85% pob tshab

setOpacity(0.85f);

//Muab lwm yam tsis

setLocationRelativeTo(thov);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(tseeb);

}

pej xeem zoo li qub khoob lug ntsiab(Txoj hlua[] args) {

//Tsim graphics

GraphicsEnvironment genv = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Kos yog txhawb OS Translucency

Yog hais tias (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS txhawb translucency”);

tshiab TransRecFrame();

}

}

}

Nta txhawb translucency thiab zoo lawm: Nyob rau hauv Java7 muaj ntau mas peb nta muaj txhawb translucency thiab puab ntawm qhov rais.

  • Tag nrho cov qhov rai translucency: Kauj tag nrho cov qhov rai yog translucent.
  • Ib pixel translucency: Ntawm no mus kom ze ib feem ntawm qhov rais yog translucent
  • Zoo li tus qhov rais: Ua kom txawv zoo li tus qhov rais zoo li ovale, vajvoog, ib yam.

Ib pixel translucency:

Peb twb pom kiag qhov rais ua translucent nyob rau hauv qhov piv txwv dhau yuav ua li cas. Tam sim no peb yuav tham tau tus thib ob qhov uas nws ua ib txheej pixels translucent siv lawv cov xim tom qab. Muaj tej cov kev txwv kom muaj kev no scenario. Qhov-rais yuav tsum tsis tau puv npo thiab lawv yuav tsum txhawb pixel qib translucency. Kom rau txoj kev yog zoo li tus piv txwv li hais saum toj no.

Nyob rau hauv qhov piv txwv nram qab no peb yuav pom li cas pixel qib translucency yog muaj teev nyob rau hauv ib tug ncej.

Listing2: Qauv uas qhia kev them nyiaj yug qib translucency pixel.

ntshuam javax.swing.*;

ntshuam java.awt.*;

ntshuam java.awt.event.ActionEvent;

ntshuam java.awt.event.ActionListener;

pej xeem hoob PixelTranslucency extends JFrame {

pej xeem PixelTranslucency() {

super(“Teem caij pixel qib translucency”);

//Muab me me ntawm lub JFrame

setSize(250, 250);

//Teeb nteg

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

//Hu rau qhov chaw kawm pixel

rau(rau cov menyuam Kuv = 0; Kuv < 16; i ){

ntxiv(tshiab PixelPanel(255 – Kuv * 12));

}

//Tom qab teeb thiab lwm yam khoom

setBackground(tshiab Xim(0, 0, 0, 0));

setLocationRelativeTo(thov);

setVisible(tseeb);

}

pej xeem zoo li qub khoob lug ntsiab(Txoj hlua[] args) {

GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Kos yog txhawb qhov rai translucency

Yog hais tias (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Tsim.tawm.println(“OS txhawb translucency”);

tshiab PixelTranslucency();

}

} lwm yam hoob PixelPanel extends JPanel {

lwm yam PixelPanel(rau cov menyuam pixl) {

super();

setBackground(tshiab Xim(0, 0, 255, pixl));

}

}

}

Zoo li tus qhov rais:

Tam sim no peb yuav tham txog lwm feature tseem ceeb raws li Java7.The zoo li tus qhov rai txhawb txhua hom rho los xijpeem yuav tus yuav tsum tau rau cov neeg siv. No feature yuav pab koj mus ua tau ib yam zoo ib yam li lub vajvoog, daim duab peb sab, polygon los yog txoj kev puab tau. SetShape cov chav kawm ntawv qhov rais yog ib txog kev teev cov cuab yeej muaj. Tab sis rov peb yuav tsum nco ntsoov tias daim ntawv qhia txog kev tshuaj ntsuam hom yuav tsum tsis txhob pub thiab operating lawv txhawb translucency.

Cov piv txwv hauv qab no qhia tau hais tias cov kev pab uas zoo li tus qhov rai.

Listing3: Cov cai uas qhia cov kev pab ntawm qhov rais zoo li tus qauv.

ntshuam javax.swing.*;

ntshuam java.awt.*;

ntshuam java.awt.geom.Ellipse2D;

ntshuam java.awt.geom.GeneralPath;

pej xeem hoob JavaShapedWindow extends JFrame {

pej xeem JavaShapedWindow() {

super(“Teeb zoo li tus qhov rai”);

//Koj muab undecorated tua kom tau ib cov nyhuv

setUndecorated(tseeb);

//Muab me me

setSize(tshiab Dimension(250, 250));

//Koj muab polygon zog

Polygon polygon = tshiab Polygon();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Muab cov qhov tseem ceeb ntawm cov zoo lawm

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

//Tso kev dav zog

GeneralPath gpath = tshiab GeneralPath();

gpath.append(polygon, tseeb);

gpath.append(newCircle, tseeb);

//Muab txoj kev

setShape(gpath);

//Teem lub thawv layout

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

ntxiv(Kem.createHorizontalGlue());

//Tsim cov ntawv sau thiab muab khoom

JLabel newlabel = tshiab JLabel(“Zoo li tus Java qhov rai”);

newlabel.setForeground(Xim.dawb);

ntxiv(newlabel);

ntxiv(Kem.createHorizontalGlue());

//Cov xim tom qab teev cov pane

getContentPane().setBackground(Xim.cyan);

//Qhov chaw teem caij

setLocationRelativeTo(thov);

setVisible(tseeb);

}

pej xeem zoo li qub khoob lug ntsiab(Txoj hlua[] args) {

GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Kos yug OS cov cuab yeej no

Yog hais tias (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Tsim.tawm.println(“OS txhawb translucency”);

tshiab JavaShapedWindow();

}

}

}

Peb kuj yuav siv ob nta xws li translucency cov qhov zoo li tus rai thaum lawv tseem. Kom muaj kev no, hu rau txoj kev setOpacity rau koj thiab. Qhov kev tshwm sim rais yuav tso saib lub neej coj nyhuv. Tab sis peb yuav tsum nco ntsoov lwm operating system yuav tsum txhawb pixel qib translucency thiab pixel transparency theem.

Xaus:

Nyob rau cov tshooj no peb tau them ib co tshiab nta hauv java7.Cov translucency thiab cov qhov rais zoo li tus nta yuav nthuav tiag tiag thiab ua java UI Cheebtsam ntau saj zawg zog. Tab sis tib lub sij hawm peb yuav tsum nco ntsoov tias lwm operating system yuav tsum tau them tag nrho cov khoom. Txwv tsis pub cov nyhuv yuav tsis pom. Li ntawd, nyob hauv daim ntawv thov xwb peb xyuas tus OS txhawb thiab kev pab tam sim no ces siv cov nyhuv. Qhov tseeb feature ntawm java pub rau cov developers kom tsim tau ntau yam ntxim rau sab povhwm poob haujlwm. Raws li peb cov paub ntawd thiab mloog tus mob yog ib tug nam tseem ceeb ntawm kev poob haujlwm raws li daim ntawv. Thiaj muaj tus tsim tawm no tam sim no nruab nrog cov cuab yeej kom daim UI li qab ntxiag thiab txaus nyiam.

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share