Kā izveidot caurspīdīgi un formas logiem, kas Java?

Pārskats: Šajā rakstā mēs diskutēt par pārredzamību un dažādas formas logiem Java. Java 7 šūpoles atbalsta šo funkciju un padarot šūpoles UI komponenti elastīgāks un lietotājam draudzīgu.

Ievads: Dažās pieteikumā, caurspīdīgs logs ir prasība, lai atbalstītu tās funkcionalitāti. Tagad Java, pārredzamība var īstenot. Caurspīdīgs logs tiek izveidots, mainot tā caurspīdīgumu, īstenojot metodi, ko sauc setOpacity uz JFrame sastāvdaļu. Bet mums ir jāsaprot, ka caurspīdīgs logs ir iespējama tikai tad, ja pamata operētājsistēma to atbalsta. Un mums arī ir nepieciešams, lai pārliecinātos, ka logs nav iekārtots. Lai padarītu logu undecorated, jums ir nepieciešams, lai izsauktu setUndecorated (patiess) metode. Kādu laiku tas ir arī nepieciešams, lai mainītu formu loga UI. Lai to īstenotu, mums ir nepieciešams, lai izsauktu setShape metodi ietvaros componentResized metodi. Tā pārrēķinās formu, kad logs ir mainīti.

Atpakaļ uz zemes: Java UI, atbalsts caurspīdība un formas loga bija ilgs laiks, pieprasījums pēc Swing / AWT komponentus. Par dzimtās attīstības pieeju šīs īpašības ir pieejamas ilgu laiku atpakaļ. Bet tas nebija pieejama pamata java komponentu. In Java6 vēlāk, atbalsts caurspīdība un formas logs ir pieejams. Pat vienu pikseļu līmeņa caurspīdība, ir arī atbalsta arī Java7.

Atbalsta veids, lai caurspīdība un pārredzamību: Java 7 atbalsta šādus trīs veida atbalstu.

TRANSLUCENT: Šajā funkciju logs var būt dažādas krāsas, bet ar tādu pašu necaurredzamību. Tātad, alfa vērtība ir vienāda visiem pikseļiem. Šis efekts ir piemērots, lai izbalināt off logs, un pēc tam pakāpeniski samazinās un palielina alfa vērtību.

PERPIXEL_TRANSLUCENT: Šis īpašums atbalsta dažādus alfa vērtības savā paša loga. Tas tiek izmantots, lai izbalināt izvēlēto apgabalu loga.

PERPIXEL_TRANSPARENT: Šis īpašums atbalsta dažādas formas logiem, nevis tradicionālo taisnstūra. Ja katru pikseļu pārredzamības tiek atbalstīta, tad dažādas formas, piemēram, apļa, trīsstūris var izveidot.

Pirms mēs izmantot jebkuru no iepriekš minētajām īpašībām, mums ir nepieciešams, lai pārbaudītu atbalstu saskaņā guļus operētājsistēmas. Testu var izdarīt, izmantojot metodi, isWindowTranslucencySupported pieder java.awt.GraphicsDevice klasē. Tā ņem veidu pārredzamību, kā ieejas un atgriež patiess / nepatiess, lai norādītu uz atbalstu.

Ļaujiet mums pārbaudīt koda paraugu, lai īstenotu caurspīdība funkciju. Šajā piemērā mēs esam radījuši taisnstūra caurspīdīgu logu uz teksta zonā. Vispirms mēs esam invalīdiem apdares režīmu, lai iegūtu ietekmi pārredzamības. Tad mēs esam pārbaudīts, ja pamata operētājsistēma atbalsta to vai ne. Ja atbalsta ietekme ir redzama uz rāmja loga.

Listing1: Paraugu rāda Caurspīdīguma no JFrame logu

importēt java.awt.Color;

importēt java.awt.GraphicsDevice;

importēt java.awt.GraphicsEnvironment;

importēt java.awt.GridBagLayout;

importēt java.awt.event.ComponentAdapter;

importēt java.awt.event.ComponentEvent;

importēt java.awt.geom.Rectangle2D;

importēt javax.swing.JFrame;

importēt javax.swing.JTextArea;

importēt javax.swing.SwingUtilities;

valsts klase TransRecFrame paplašina JFrame {

/**

* Izveidot pārredzamu taisnstūra rāmi ar 85% caurspīdīgums

*/

valsts TransRecFrame() {

super(“Translucent Taisnstūra Frame”);

//Uzstādīt izkārtojumu

setLayout(jauns GridBagLayout());

//Izveidojiet teksta zonā

galīgs JTextArea txtArea = jauns JTextArea(5, 50);

txtArea.setBackground(Krāsa.CYAN);

pievienot(txtArea);

//Zvanu atslēgt apdare

setUndecorated(patiess);

 

//Zvanu setShape lai mainītu formu, kad widnow ir mainīti

addComponentListener(jauns ComponentAdapter() {

@ Ignorēšana

valsts par spēkā neesošu componentResized(ComponentEvent un) {

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

}

});

//Padarīt logu 85% caurspīdīgs

setOpacity(0.85f);

//Uzstādīt citus parametrus

setLocationRelativeTo(nulle);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(patiess);

}

valsts statisks par spēkā neesošu galvenais(Rinda[] args) {

//Izveidot grafikas vidi

Jaunatnes Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Pārbaudiet, vai OS atbalsta Caurspīdība

ja (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

Println(“OS atbalsta caurspīdība”);

jauns TransRecFrame();

}

}

}

Funkcijas, lai atbalstītu caurspīdība un forma: Jo Java7 ir galvenokārt trīs funkcijas, kas pieejamas, lai atbalstītu caurspīdība un loga formu.

  • Pilna logu caurspīdība: Šajā pieejā pilns logs ir caurspīdīgs.
  • Per pikseļu caurspīdība: Izmantojot šo pieeju no loga daļa ir caurspīdīgs
  • Formas logi: Veikt dažādas formas logus, piemēram, ovale, aplis, taisnstūrveida uc.

Per pikseļu caurspīdība:

Mēs esam jau redzams, kā, lai pabeigtu logu gaismas caurlaidīgu, kas iepriekšējā piemērā. Tagad mēs apspriedīsim otro daļu, veicot virkni pikseļu caurspīdīgu, izmantojot savu fona krāsu. Ir daži ierobežojumi, lai īstenotu šo scenāriju. Logs nedrīkst būt pilna ekrāna, un sistēmai ir jāatbalsta pikseļu līmeņa caurspīdība. Procedūras pārējais ir līdzīgs iepriekš, piemēram.

Šajā piemērā mēs redzēsim, cik pikseļu līmenis caurspīdība ir noteikts rāmī.

Listing2: Paraugs rāda pikseļu līmenī caurspīdība atbalsts.

importēt javax.swing.*;

importēt java.awt. *;

importēt java.awt.event.ActionEvent;

importēt java.awt.event.ActionListener;

valsts klase PixelTranslucency paplašina JFrame {

valsts PixelTranslucency() {

super(“Uzstādīt pikseļu līmeņa caurspīdība”);

//Uzstādīt lielumu JFrame

setSize(250, 250);

//Uzstādīt nolikt

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

//Aicinājums pikseļu iestatījumu

uz(int i = 0; es < 16; i ){

pievienot(jauns Pixel panelis(255 – es * 12));

}

//Uzstādīt fona un citas īpašības

setBackground(jauns Krāsa(0, 0, 0, 0));

setLocationRelativeTo(nulle);

setVisible(patiess);

}

valsts statisks par spēkā neesošu galvenais(Rinda[] args) {

Jaunatnes Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Pārbaudiet, vai logs atbalsta caurspīdība

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

Sistēma.ārā.println(“OS atbalsta caurspīdība”);

jauns PixelTranslucency();

}

} privāts klase Pixel panelis paplašina JPanel {

privāts Pixel panelis(int pixl) {

super();

setBackground(jauns Krāsa(0, 0, 255, pixl));

}

}

}

Formas Windows:

Tagad mēs diskutēt par vēl vienu svarīgu funkciju atbalsta Java7.The formas loga atbalsta visu veidu formas neatkarīgi būt prasība lietotājs. Šī funkcija palīdz jums izveidot jebkuras formas, piemēram, apļa, trīsstūris, poligona vai iespējams sarežģītas formas. SetShape metode loga klasei ir pieejama nosakot īpašumu. Bet atkal mums ir jāatceras, ka pilna ekrāna režīmā nedrīkst pieļaut, un operētājsistēma atbalsta caurspīdība.

Sekojošais piemērs parāda izmantošanu formas loga.

Listing3: Parauga kods, kas parāda izmantošanu formas loga.

importēt javax.swing.*;

importēt java.awt. *;

importēt java.awt.geom.Ellipse2D;

importēt java.awt.geom.GeneralPath;

valsts klase JavaShapedWindow paplašina JFrame {

valsts JavaShapedWindow() {

super(“Uzstādīt formas logu”);

//Uzstādīt undecorated OFF, lai iegūtu efektu

setUndecorated(patiess);

//Iestatīt izmēru

setSize(jauns Dimensija(250, 250));

//Uzstādīt poligona īpašības

Daudzstūris poligons = jauns Daudzstūris();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Uzstādīt vērtības formu

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

//Nosaka vispārīgos ceļu īpašības

GeneralPath gpath = jauns GeneralPath();

gpath.append(daudzstūris, patiess);

gpath.append(newCircle, patiess);

//Uzstādīt ceļu

setShape(gpath);

//Uzstādīt box izkārtojumu

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

pievienot(Kaste.createHorizontalGlue());

//Izveidot etiķetes un iestatīt rekvizītus

JLabel newlabel = jauns JLabel(“Java Veidota logu”);

newlabel.setForeground(Krāsa.balts);

pievienot(newlabel);

pievienot(Kaste.createHorizontalGlue());

//Uzstādīt satura rūti fona krāsu

getContentPane().setBackground(Krāsa.cyan);

//Iestatīt atrašanās vietu

setLocationRelativeTo(nulle);

setVisible(patiess);

}

valsts statisks par spēkā neesošu galvenais(Rinda[] args) {

Jaunatnes Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Pārbaudiet OS atbalstu šo īpašumu

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

Sistēma.ārā.println(“OS atbalsta caurspīdība”);

jauns JavaShapedWindow();

}

}

}

Mēs varam arī īstenot kombināciju divas iespējas, piemēram, caurspīdība un formas logu. Lai īstenotu šo, zvaniet setOpacity metodi kadrā. Rezultāts logs kopējo ietekmi. Bet mums ir jāatceras pamata operētājsistēma ir jāatbalsta pikseļu līmeņa caurspīdība un pikseļu līmeņa pārredzamību.

Secinājums:

Šajā rakstā mēs esam uz dažas jaunas funkcijas java7.The caurspīdība un formas logu funkcijas ir patiešām interesanti, un padarīt java UI komponenti elastīgāku. Bet tajā pašā laikā mums ir jāatceras, ka pamata operētājsistēma jāatbalsta visas šīs īpašības. Pretējā gadījumā ietekme nebūs redzama. Tātad pašā prasības pieteikumā mēs pārbaudām OS atbalsts, un pēc tam īstenot ietekmi. Jaunākais iezīme java ļauj izstrādātājiem, lai radītu dažāda veida ietekmi uz UI pusē. Kā mēs visi zinām, ka izskatu un ir svarīgs aspekts jebkurā UI balstītas pieteikumu. Tātad, attīstītājs ir aprīkots ar instrumentiem, lai padarītu UI daudz patīkamu un pievilcīgu.

============================================= ============================================== Pērciet labākās Techalpine grāmatas vietnē Amazon,en,Elektriķa CT kastaņu valodas,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share