Kako napraviti proziran i oblikovan prozor u Javi?

Pregled: U ovom članku ćemo raspravljati o transparentnosti i različitih oblika prozora u Java. U java 7 ljuljačka podržava ovu značajku, a što ljuljačka UI komponente fleksibilniji i user friendly.

Uvođenje: U nekim prijave, transparentni prozor je uvjet za potporu njegovu funkcionalnost. Sada u Javi, Transparentnost se može provesti. Prozirni prozor je stvorio mijenjao neprozirnost provođenjem metodu zvanu setOpacity na JFrame komponentu. No, moramo shvatiti da je proziran prozor je moguće samo ako se temeljni operativni sustav podržava. I mi također trebamo biti sigurni da prozor nije uređena. Da bi se prozor bez ukrasa, morate nazvati setUndecorated (istinit) način. Neki put to je također potrebna kako bi promijenili oblik prozora UI. Za njegovu provedbu, moramo nazvati setShape metodu unutar componentResized metode. To ponovni izračun oblik kada je prozor mijenjati.

Pozadinska: U java UI, podrška za translucenciju i oblika prozor bio dugogodišnji potražnje za swing / AWT komponenti. Za rodnom razvoj pristupa ta svojstva su dostupni na duže vrijeme vratiti. Ali to nije bila dostupna za core Java komponenti. U Java6 naovamo, potpora u obliku prosvjetljenja, a prozor je dostupan. Čak i po razini piksela prosvjetljenja je također podupire u Java7.

Tip potpore za prosvjetljenja i transparentnosti: Java 7 podržava sljedeće tri vrste potpore.

Prozračan: U ovoj prozor može imati različite boje, ali s istom razinom zacrnjenja. Dakle, alfa vrijednost je ista za sve piksela. Ovaj efekt je pogodan za nestati off prozor, a zatim se postupno smanjuje i povećava alfa vrijednost.

PERPIXEL_TRANSLUCENT: Ovaj objekt podržava različite alfa vrijednosti unutar samog prozora. To se koristi za odabranu regiju nestati kroz prozor.

PERPIXEL_TRANSPARENT: Ovaj objekt podržava različite oblike prozora umjesto tradicionalne pravokutnika. Ako piksela po transparentnosti podržan zatim različite oblike kao što su krug, trokut može biti izrađen.

Prije nego što smo koristiti bilo koji od gore navedenih svojstava moramo testirati potporu u ležećem operativnog sustava. Test se može obaviti pomoću metode isWindowTranslucencySupported pripadaju klasi java.awt.GraphicsDevice. Potrebno vrstu transparentnosti kao ulazni i true / false ukazati na potporu.

Neka nam provjeriti uzorak koda za provedbu Prosvjetljenje značajku. U ovom primjeru smo stvorili pravokutni proziran prozor na tekst području. Prvo smo isključeni ukras način da biste dobili učinak transparentnosti. Onda smo provjeriti je li temeljni operativni sustav podržava ili ne. Ako podržan efekt je vidljiv na okvir prozora.

Listing1: Uzorak prikazuje prosvjetljenje od JFrame prozora

uvoz java.awt.Color;

uvoz java.awt.GraphicsDevice;

uvoz java.awt.GraphicsEnvironment;

uvoz java.awt.GridBagLayout;

uvoz java.awt.event.ComponentAdapter;

uvoz java.awt.event.ComponentEvent;

uvoz java.awt.geom.Rectangle2D;

uvoz javax.swing.JFrame;

uvoz javax.swing.JTextArea;

uvoz javax.swing.SwingUtilities;

javni razred TransRecFrame proteže JFrame {

/**

* Stvaranje transparentan pravokutni okvir s 85% prozirnost

*/

javni TransRecFrame() {

super(“Proziran Pravokutni okvir”);

//Postavljanje rasporeda

setLayout(novi GridBagLayout());

//Stvaranje područje teksta

Konačni JTextArea txtArea = novi JTextArea(5, 50);

txtArea.setBackground(Boja.CYAN);

dodati(txtArea);

//Poziv za onemogućavanje ukras

setUndecorated(istinit);

 

//Poziv setShape za promjenu veličine oblik kada widnow se mijenjati

addComponentListener(novi ComponentAdapter() {

@ Override

javni poništiti componentResized(ComponentEvent i) {

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

}

});

//Provjerite prozor 85% transparentan

setOpacity(0.85f);

//Postavite druge parametre

setLocationRelativeTo(nula);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(istinit);

}

javni statički poništiti glavni(Gudački[] args) {

//Stvaranje grafike okoliš

Mladi Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Provjerite je li OS podržava Prosvjetljenje

ako (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Prozračan)) {

System.out.println(“OS podržava prosvjetljenje”);

novi TransRecFrame();

}

}

}

Značajke za potporu prosvjetljenje i oblik: U Java7 postoje uglavnom tri značajke dostupne za potporu prosvjetljenje i oblik prozora.

  • Cijeli prozor prosvjetljenje: U ovom pristupu punim prozor je proziran.
  • Po piksela prosvjetljenja: U ovom pristupu dio prozora je proziran
  • U obliku prozora: Napravite različitih oblika prozora kao ovale, krug, pravokutne i sl..

Po piksela prosvjetljenja:

Već smo vidjeli kako napraviti kompletan prozor prozirnom u prethodnom primjeru. Sada ćemo raspraviti drugi dio izrade skup piksela prozirnih pomoću njihovu boju pozadine. Postoje neka ograničenja za provedbu ovog scenarija. Prozor ne bi trebao biti u full screen, a sustav mora podržavati razini piksela prosvjetljenje. Ostatak postupka je sličan gore navedenom primjeru.

U sljedećem primjeru ćemo vidjeti kako piksela razini prosvjetljenje je postavljena u okviru.

Listing2: Primjer pokazuje piksela razini prosvjetljenje podrška.

uvoz javax.swing.*;

uvoz java.awt. *;

uvoz java.awt.event.ActionEvent;

uvoz java.awt.event.ActionListener;

javni razred PixelTranslucency proteže JFrame {

javni PixelTranslucency() {

super(“Postavite prosvjetljenje razini piksela”);

//Postaviti veličinu JFrame

setSize(250, 250);

//Postavite nokautirati

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

//Poziv za postavljanje piksela

za(int i = 0; ja < 16; ja ){

dodati(novi Pixel vijeće(255 – ja * 12));

}

//Postavite pozadinu i druga svojstva

setBackground(novi Boja(0, 0, 0, 0));

setLocationRelativeTo(nula);

setVisible(istinit);

}

javni statički poništiti glavni(Gudački[] args) {

Mladi Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Provjerite je li prozor podržava Prosvjetljenje

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

Sistem.van.println(“OS podržava prosvjetljenje”);

novi PixelTranslucency();

}

} privatan razred Pixel vijeće proteže JPanel {

privatan Pixel vijeće(int pixl) {

super();

setBackground(novi Boja(0, 0, 255, pixl));

}

}

}

U obliku Windows:

Sada ćemo raspraviti o tome još jedna važna značajka podržava Java7.The obliku prozora podržava sve vrste oblika god se zahtjev korisnika. Ova značajka pomaže vam da stvorite bilo koji oblik poput kruga, trokut, poligon ili bilo moguće složenih oblika. SetShape metoda prozora klase dostupan za postavljanje nekretnine. Ali opet moramo imati na umu da je full screen modu ne bi trebao biti dopušten i operativni sustav podržava prosvjetljenje.

Sljedeći primjer pokazuje korištenje u obliku prozora.

Listing3: Uzorak koda pokazuje korištenje u obliku prozora.

uvoz javax.swing.*;

uvoz java.awt. *;

uvoz java.awt.geom.Ellipse2D;

uvoz java.awt.geom.GeneralPath;

javni razred JavaShapedWindow proteže JFrame {

javni JavaShapedWindow() {

super(“Postavljanje oblika prozor”);

//Postavljanje ukrasa isključeno da se učinak

setUndecorated(istinit);

//Postavite veličinu

setSize(novi Dimenzija(250, 250));

//Postavite poligon svojstva

Poligon poligon = novi Poligon();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Postavite vrijednosti u obliku

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

//Postavite opće svojstva put

GeneralPath gpath = novi GeneralPath();

gpath.append(poligon, istinit);

gpath.append(newCircle, istinit);

//Postavite put

setShape(gpath);

//Postavite okvir izgled

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

dodati(Kutija.createHorizontalGlue());

//Stvaranje naljepnica i set svojstava

JLabel newlabel = novi JLabel(“Java Shaped prozor”);

newlabel.setForeground(Boja.bijel);

dodati(newlabel);

dodati(Kutija.createHorizontalGlue());

//Postavljanje sadržaja boju pozadine pane

getContentPane().setBackground(Boja.cijan);

//Postavite mjesto

setLocationRelativeTo(nula);

setVisible(istinit);

}

javni statički poništiti glavni(Gudački[] args) {

Mladi Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Provjerite OS podršku za ove nekretnine

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

Sistem.van.println(“OS podržava prosvjetljenje”);

novi JavaShapedWindow();

}

}

}

Mi također može primijeniti kombinaciju dvije mogućnosti poput translucenciju i oblika prozora. Za provedbu ove, nazovite setOpacity način na okvir. Prozor rezultat će se prikazati zajednički učinak. No, trebamo se sjetiti temeljni operativni sustav mora podržavati razini piksela prosvjetljenje i piksela razini transparentnosti.

Zaključak:

U ovom članku smo pokrili neke nove značajke u java7.The prosvjetljenja i oblika prozor značajke su stvarno zanimljivo i napraviti java UI komponente fleksibilniji. No, u isto vrijeme, moramo se sjetiti da je osnovni operativni sustav treba podržavati sve ove osobine. Inače učinak neće biti vidljiv. Dakle, u same aplikacije smo provjeriti OS podrška, a zatim provesti učinak. Najnovija značajka omogućuje Java programeri za stvaranje različitih vrsta utjecaja na UI strani. Kao što svi znamo da je izgled i dojam je važan aspekt bilo UI aplikacija. Dakle, programer sada je opremljen s alatima kako bi UI ugodniji i atraktivan.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share