Si të krijoni dritare tejdukshëm dhe formësohet në Java?

Përmbledhje: Në këtë artikull ne do të diskutojnë në lidhje me transparencën dhe dritaret të ndryshme në formë në Java. Në java 7 ritëm mbështet këtë funksion dhe duke e bërë komponentët UI ritëm më fleksibile dhe user friendly.

Parathënie: Në disa aplikimit, Dritarja transparente është një kërkesë për të mbështetur funksionimin e saj. Tani në Java, transparenca mund të zbatohet. Një dritare tejdukshëm është krijuar duke ndryshuar perde e saj duke zbatuar një metodë të quajtur setOpacity në një komponent JFrame. Por ne duhet të kuptojmë se një dritare tejdukshëm është e mundur vetëm nëse sistemi operativ themelor mbështet atë. Dhe ne gjithashtu duhet të sigurohemi që dritarja nuk është e zbukuruar. Për të bërë një dritare undecorated, ju keni nevojë për të thirrur setUndecorated (i vërtetë) metodë. Disa herë ajo është gjithashtu e nevojshme për të ndryshuar formën e një UI dritare. Për të zbatuar atë, ne kemi nevojë për të thirrur metodën setShape brenda metodës componentResized. Ajo do të rillogaritjen formën kur dritarja është ridimensionuar.

Terren Mbrapa: Në java UI, mbështetje për tejdukshmërisë dhe formë dritares ishte një kohë të gjatë kërkesë për Swing / AWT komponentët. Për qasje të zhvillimit amtare në këto prona janë në dispozicion nga kohë të gjatë prapa. Por kjo nuk ishte e arritshme për komponentët thelbësore java. Në Java6 këndej, mbështetje për translucency dhe dritare formë është në dispozicion. Edhe per translucency nivel pixel është gjithashtu e mbështet në Java7.

Lloji i mbështetjes për translucency dhe transparencë: Java 7 mbështet në vijim llojin e mbështetjes së tre.

Tejdukshëm: Në këtë funksion dritare mund të kenë ngjyra të ndryshme por me të njëjtin nivel të errësirës. Pra, vlera Alpha është i njëjtë për të gjitha pixels. Ky efekt është i përshtatshëm për të zbehet off një dritare dhe pastaj gradualisht zvogëlohet dhe rrit vlerën alfa.

PERPIXEL_TRANSLUCENT: Kjo pronë mbështet vlera të ndryshme alfa brenda dritares vetë. Kjo është përdorur për të zbehet rajonin e përzgjedhur të dritares.

PERPIXEL_TRANSPARENT: Kjo pronë mbështet forma të ndryshme të dritareve sesa drejtkëndësh tradicionale. Nëse për transparencë pixel është e mbështetur pastaj forma të ndryshme si rrethi, trekëndësh mund të krijohen.

Para se të përdorni ndonjë nga pronat e mësipërme ne kemi nevojë për të testuar mbështetjen e nën sistemin operativ gënjyer. Testi mund të bëhet duke përdorur metodën e isWindowTranslucencySupported që i përkasin klasës java.awt.GraphicsDevice. Ajo merr llojin e transparencës si input dhe kthen true / false për të treguar mbështetjen e.

Le të shikoni një kod mostër për të zbatuar funksion tejdukshmërisë. Në këtë shembull ne kemi krijuar një dritare drejtkëndëshe tejdukshëm në një fushë teksti. Së pari ne kemi aftësi të kufizuara mode dekoratë për të marrë efektin e transparencës. Pastaj ne kemi kontrolluar nëse sistemi operativ themelor mbështet atë apo jo. Nëse mbështetet efekti është i dukshëm në dritare kornizë.

Listing1: Shembull i tejdukshmërisë treguar një dritare JFrame

import java.awt.Color;

import java.awt.GraphicsDevice;

import java.awt.GraphicsEnvironment;

import java.awt.GridBagLayout;

import java.awt.event.ComponentAdapter;

import java.awt.event.ComponentEvent;

import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;

import javax.swing.JTextArea;

import javax.swing.SwingUtilities;

publik klasë TransRecFrame shtrihet JFrame {

/**

* Krijo një kornizë transparente drejtkëndëshe me 85% transparenca

*/

publik TransRecFrame() {

super(“Frame tejdukshëm drejtkëndëshe”);

//Set plan urbanistik

setLayout(i ri GridBagLayout());

//Krijo një zone teksti

përfundimtar JTextArea txtArea = i ri JTextArea(5, 50);

txtArea.setBackground(Ngjyrë.CYAN);

shtoj(txtArea);

//Telefononi për të çaktivizuar dekoratë

setUndecorated(i vërtetë);

 

//Telefononi setShape për të resize formën kur widnow është ridimensionuar

addComponentListener(i ri ComponentAdapter() {

@ Override

publik pavlefshme componentResized(ComponentEvent dhe) {

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

}

});

//Bëni dritaren 85% transparente

setOpacity(0.85f);

//Set parametrat tjerë

setLocationRelativeTo(zero);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(i vërtetë);

}

publik i pandryshueshëm pavlefshme kryesor(Varg[] args) {

//Krijo ambient grafike

Rinia sipërmarrje GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Kontrolloni nëse OS mbështet Tejdukshmërisë

nëse (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Tejdukshëm)) {

Println(“OS mbështet tejdukshmërisë”);

i ri TransRecFrame();

}

}

}

Features për të mbështetur tejdukshmërisë dhe formën: Në Java7 janë kryesisht tri tipare në dispozicion për të mbështetur tejdukshmërisë dhe formën e një dritare.

  • Tejdukshmërisë Full dritare: Në këtë qasje dritare plotë është i tejdukshëm.
  • Per translucency pixel: Në këtë qasje, një pjesë e dritares është i tejdukshëm
  • Dritaret formë: Bëni dritaret në formë të ndryshme si ovale, rreth, etj drejtkëndëshe.

Per translucency pixel:

Ne kemi parë tashmë se si të bëjnë një dritare tejdukshëm plotë në shembullin e mëparshëm. Tani ne do të diskutojmë në pjesën e dytë për të bërë një sërë pixels tejdukshëm duke përdorur ngjyrën e tyre sfond. Ka disa kufizime për të zbatuar këtë skenar. Dritarja nuk duhet të jetë ekran të plotë dhe sistemi duhet të mbështesë tejdukshmërisë pixel nivelit. Pjesa tjetër e procedurës është i ngjashëm me shembullin e mësipërm.

Në shembullin e mëposhtëm ne do të shohim se si tejdukshmërisë pixel nivel është i vendosur në një kornizë.

Listing2: Shembull treguar pixel niveli tejdukshmërisë mbështetja.

import javax.swing.*;

import java.awt. *;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

publik klasë PixelTranslucency shtrihet JFrame {

publik PixelTranslucency() {

super(“Bëje nivelit të tejdukshmërisë pixel”);

//Bëje madhësinë e JFrame

setSize(250, 250);

//Set nxjerr

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

//Thirrje për vendosjen pixel

për(int I = 0; unë < 16; i ){

shtoj(i ri Paneli Pixel(255 – unë * 12));

}

//Set sfond dhe pronat e tjera

setBackground(i ri Ngjyrë(0, 0, 0, 0));

setLocationRelativeTo(zero);

setVisible(i vërtetë);

}

publik i pandryshueshëm pavlefshme kryesor(Varg[] args) {

Rinia sipërmarrje GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Kontrolloni nëse dritarja mbështet tejdukshmërisë

nëse (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Sistem.jashtë.println(“OS mbështet tejdukshmërisë”);

i ri PixelTranslucency();

}

} privat klasë Paneli Pixel shtrihet JPanel {

privat Paneli Pixel(int pixl) {

super();

setBackground(i ri Ngjyrë(0, 0, 255, pixl));

}

}

}

Windows-formësohet:

Tani ne do të diskutojnë në lidhje me një tjetër tipar i rëndësishëm i mbështetur nga dritarja Java7.The formë mbështet të gjitha llojet e formave Çfarëdo që të jetë kërkesë e përdoruesit. Ky funksion ju ndihmon për të krijuar ndonjë formë si rrethi, trekëndësh, poligonin ose ndonjë formë komplekse të jetë e mundur. Metoda setShape e klasës dritare është në dispozicion për caktimin e pronës. Por përsëri ne duhet të kujtojmë se Full Screen Mode nuk duhet të lejohet dhe të sistemit operativ mbështet tejdukshmërisë.

Shembulli i mëposhtëm tregon përdorimin e dritares formë.

Listing3: Kodi mostrës tregon përdorimin e dritares formë.

import javax.swing.*;

import java.awt. *;

import java.awt.geom.Ellipse2D;

import java.awt.geom.GeneralPath;

publik klasë JavaShapedWindow shtrihet JFrame {

publik JavaShapedWindow() {

super(“Bëje Window formë”);

//Set OFF undecorated për të marrë një efekt

setUndecorated(i vërtetë);

//Set madhësinë

setSize(i ri Dimension(250, 250));

//Set pronat poligonin

= Poligonin poligonin i ri Shumëkëndësh();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Vendosni vlerat e formës

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

//Bëje vetitë e përgjithshme rrugën në

GeneralPath gpath = i ri GeneralPath();

gpath.append(shumëkëndësh, i vërtetë);

gpath.append(newCircle, i vërtetë);

//Set rrugën

setShape(gpath);

//Set plan urbanistik kuti

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

shtoj(Kuti.createHorizontalGlue());

//Krijo etiketë dhe vendosur pronat

JLabel newlabel = i ri JLabel(“Dritarja Java formësohet”);

newlabel.setForeground(Ngjyrë.e bardhë);

shtoj(newlabel);

shtoj(Kuti.createHorizontalGlue());

//Bëje pane përmbajtje ngjyrën e sfondit

getContentPane().setBackground(Ngjyrë.cyan);

//Set vendndodhjen

setLocationRelativeTo(zero);

setVisible(i vërtetë);

}

publik i pandryshueshëm pavlefshme kryesor(Varg[] args) {

Rinia sipërmarrje GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Kontrolloni mbështetje OS për këtë pronë

nëse (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Sistem.jashtë.println(“OS mbështet tejdukshmërisë”);

i ri JavaShapedWindow();

}

}

}

Ne gjithashtu mund të zbatojë një kombinim i dy karakteristika si tejdukshmërisë dhe formë dritare. Për të zbatuar këtë, telefononi metodën setOpacity në kuadër tuaj. Dritarja rezultati do të shfaq efektin e kombinuar. Por ne duhet të kujtojmë themelor sistemi operativ duhet të mbështesë tejdukshmërisë pixel nivelit të lartë dhe të nivelit pixel transparencë.

Përfundim:

Në këtë artikull ne kemi mbuluar disa karakteristika të reja në translucency java7.The dhe karakteristika formë dritare janë me të vërtetë interesante dhe të bëjnë java komponentët UI më fleksibël. Por në të njëjtën kohë ne duhet të kujtojmë se sistemi operativ themelor duhet të mbështesë të gjitha këto prona. Përndryshe, efekti nuk do të jetë i dukshëm. Pra, në zbatimin vetë ne kontrolloni mbështetjen OS dhe pastaj të zbatojë efektin. Tipar i fundit i lejon zhvilluesve Java për të krijuar lloje të ndryshme të efektit në anën UI. Siç e dimë të gjithë që duken dhe të ndjehen është një aspekt i rëndësishëm i çdo aplikim UI bazuar. Pra, zhvilluesi i saj tani është e pajisur me mjete për të bërë UI më të këndshme dhe tërheqëse.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share