Ako vytvoriť priesvitné a tvaru Windows v jazyku Java?

Prehľad: V tomto článku budeme diskutovať o transparentnosti a rôznych tvaru okna v Jave. V Jave 7 hojdačka túto funkciu podporuje a robiť komponenty UI hojdačka flexibilnejší a užívateľsky prívetivé.

Úvod: V niektorých aplikácií, priehľadný je požiadavka na podporu jeho funkčnosť. Teraz v Jave, transparentnosť môže byť vykonaná. Priesvitný okno je vytvorený tým, že mení jej krytie zavedením metódu nazvanú setOpacity na JFrame zložky. Ale musíme pochopiť, že priesvitné okno je možné iba v prípade, že základný operačný systém podporuje. A tiež je potrebné sa uistiť, že nie je okno zdobí. Ak chcete okno nezdobené, budete musieť zavolať setUndecorated (skutočný) metóda. Nejaký čas je tiež nutné zmeniť tvar okna UI. Ak chcete implementovať, musíme zavolať metódu setShape v componentResized metódy. Je to prepočíta tvar pri zmene veľkosti okna.

Späť na zem: V java rozhranie, Podpora priesvitnosti a tvaru okna bola dlhá časová náročnosť pre Swing / AWT komponenty. Pre natívny vývoj prístupu k týmto vlastnostiam sú k dispozícii na dlhú dobu späť. Ale to nebolo prístupné základných Java komponenty. V java6 vpred, podpora priesvitnosti a tvarované okno je k dispozícii. Dokonca aj na úrovni pixelov priesvitnosti je takisto podporuje Java7.

Druh podpory priesvitnosti a priehľadnosti: Jáva 7 podporuje nasledujúce tri typy podpory.

TRANSLUCENT: V tejto funkcii sa okno môže mať rôzne farby, ale s rovnakou úrovňou krytia. Takže je hodnota alpha rovnaká pre všetky pixely. Tento efekt je vhodný pre netrvá okná a potom sa postupne znižuje a zvyšuje hodnotu alfa.

PERPIXEL_TRANSLUCENT: Táto vlastnosť podporuje rôzne hodnoty alfa v rámci samotného okna. Toto je použiť k zoslabeniu vybranú oblasť okna.

PERPIXEL_TRANSPARENT: Táto vlastnosť podporuje rôzne tvary okien, skôr než tradičné obdĺžnik. Ak na pixel je podporovaná transparentnosť potom rôzne tvary ako kružnice, trojuholník môže byť vytvorený.

Než sme sa použiť niektorý z vyššie uvedených vlastností, musíme otestovať podporu pod ležiace operačného systému. Test môže byť vykonané s použitím metódy isWindowTranslucencySupported patrí do triedy java.awt.GraphicsDevice. Berie typ fólie ako vstup a vracia true / false uviesť podporu.

Poďme skontrolovať ukážkový kód implementovať priesvitnosti funkciu. V tomto príklade sme vytvorili obdĺžnikovou priesvitné okno v textovej oblasti. Najprv sme zakázali dekorácie režime získať efekt priehľadnosti. Potom sme sa skontrolovať, či použitý operačný systém podporuje, alebo nie. Ak je to podporované efekt je viditeľný na ráme okna.

Listing1: Príklad ukazuje priesvitnosti okna 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;

verejnosť trieda TransRecFrame rozširuje JFrame {

/**

* Vytvoriť transparentné obdĺžnikový rám s 85% priehľadnosť

*/

verejnosť TransRecFrame() {

Super(“Priesvitný obdĺžnikový rámček”);

//Nastavenie rozvrhnutia

setLayout(nový GridBagLayout());

//Vytvorte textové pole

posledný JTextArea txtArea = nový JTextArea(5, 50);

txtArea.setBackground(Farba.CYAN);

pridať(txtArea);

//Výzva na zakázanie dekorácie

setUndecorated(skutočný);

 

//Zavolajte setShape zmeniť veľkosť tvaru, kedy widnow zmene veľkosti

addComponentListener(nový ComponentAdapter() {

@ Override

verejnosť zrušiť componentResized(ComponentEvent a) {

setShape(nový Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//Skontrolujte okno 85% priehľadný

setOpacity(0.85F);

//Nastaviť ďalšie parametre

setLocationRelativeTo(nula);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(skutočný);

}

verejnosť statický zrušiť hlavné(Reťaz[] args) {

//Vytvorenie grafického prostredia

Youth Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Skontrolujte, či operačný systém podporuje Translucencia

ak (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS podporuje priesvitnosť”);

nový TransRecFrame();

}

}

}

Funkcia na podporu priesvitnosť a tvar: V Java7 sú predovšetkým tri funkcie sú k dispozícii na podporu priesvitnosť a tvar okna.

  • Plný okno priesvitnosť: Sa v tomto prípade celé okno je priesvitná.
  • Na pixel priesvitnosti: V tomto prístupe sa časť okna je priesvitný
  • Tvarové okná: Skontrolujte, rôzne tvarované okná ako ovale, kruh, obdĺžnikový atď.

Na pixel priesvitnosti:

Už sme videli, ako urobiť kompletné okná priesvitného v predchádzajúcom príklade. Teraz sa budeme zaoberať druhú časť tvorby sadu pixelov priesvitných pomocou ich farbu pozadia. Existujú určité obmedzenia na vykonanie tohto scenára. Okno nesmie byť na celej obrazovke a systém musí podporovať pixel úrovni priesvitnosť. Ďalší postup je podobný ako vyššie uvedený príklad.

V nasledujúcom príklade uvidíme, ako sa pixel úroveň priesvitnosti zasadený do rámu.

Listing2: Príklad ukazuje pixel úroveň priesvitnosti podpora.

import javax.swing.*;

import java.awt *.;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

verejnosť trieda PixelTranslucency rozširuje JFrame {

verejnosť PixelTranslucency() {

Super(“Nastaviť úrovni pixelov priesvitnosť”);

//Nastaviť veľkosť JFrame

setSize(250, 250);

//Nastaviť vyložiť

getContentPane().setLayout(nový GridLayout(6, 6));

//Výzva k pixelov

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

pridať(nový Pixel Panel(255 – ja * 12));

}

//Nastaviť pozadia a ďalšie vlastnosti

setBackground(nový Farba(0, 0, 0, 0));

setLocationRelativeTo(nula);

setVisible(skutočný);

}

verejnosť statický zrušiť hlavné(Reťaz[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Skontrolujte, či okno podporuje priesvitnosť

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

Systém.von.System.out.println(“OS podporuje priesvitnosť”);

nový PixelTranslucency();

}

} súkromný trieda Pixel Panel rozširuje JPanel {

súkromný Pixel Panel(int pixlu) {

Super();

setBackground(nový Farba(0, 0, 255, pixlu));

}

}

}

Tvarové Windows:

Teraz budeme diskutovať o ďalšie dôležité funkcie podporované Java7.The tvare okna podporuje všetky typy tvarov nehľadiac na požiadavku užívateľa. Táto funkcia vám pomôže vytvoriť akýkoľvek tvar ako kruh, trojuholník, polygón alebo možno zložitý tvar. SetShape Metóda triedy okna je k dispozícii pre nastavenie vlastností. Ale znovu musíme mať na pamäti, že režim celej obrazovky by nemalo byť dovolené, a operačný systém podporuje priesvitnosť.

Nasledujúci príklad ukazuje použitie v tvare okna.

Listing3: Ukážkový kód ukazuje použitie v tvare okna.

import javax.swing.*;

import java.awt *.;

import java.awt.geom.Ellipse2D;

import java.awt.geom.GeneralPath;

verejnosť trieda JavaShapedWindow rozširuje JFrame {

verejnosť JavaShapedWindow() {

Super(“Set v tvare okna”);

//Nastaviť nezdobené OFF získať vplyv

setUndecorated(skutočný);

//Nastavenie veľkosti

setSize(nový Rozmer(250, 250));

//Nastaviť polygón vlastnosti

Polygón polygón = nový Polygón();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Nastavenie hodnoty tvare

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

//Nastavenie všeobecných vlastností cesty

GeneralPath gpath = nový GeneralPath();

gpath.append(polygón, skutočný);

gpath.append(newCircle, skutočný);

//Nastavenie cesty

setShape(gpath);

//Nastaviť box rozvrhnutie

getContentPane().setLayout(nový BoxLayout(getContentPane(), BoxLayout.OSA_X));

pridať(Box.createHorizontalGlue());

//Vytvorte štítok a nastaviť vlastnosti

JLabel newlabel = nový JLabel(“Java v tvare okna”);

newlabel.setForeground(Farba.biely);

pridať(newlabel);

pridať(Box.createHorizontalGlue());

//Nastaviť table obsahu farbu pozadia

getContentPane().setBackground(Farba.cyan);

//Nastaviť umiestnenia

setLocationRelativeTo(nula);

setVisible(skutočný);

}

verejnosť statický zrušiť hlavné(Reťaz[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Skontrolujte OS podporu pre túto vlastnosť

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

Systém.von.System.out.println(“OS podporuje priesvitnosť”);

nový JavaShapedWindow();

}

}

}

Môžeme tiež realizovať kombináciu dvoch funkcií, ako je priesvitnosť a tvaru okna. Na vykonanie tohto, volanie setOpacity metódy rámčeka. Výsledkom okne sa zobrazí kombinovaný účinok. Ale mali by sme si uvedomiť základný operačný systém musí podporovať pixel úroveň priesvitnosti a priehľadnosti úrovni pixelov.

Záver:

V tomto článku sme sa zaoberali niektoré nové funkcie v java7.The priesvitnosti a tvarované okno funkcie sú naozaj zaujímavé a aby java UI komponenty pružnejšie. Ale zároveň musíme mať na pamäti, že základný operačný systém by mal podporovať všetky tieto vlastnosti. Inak efekt nebude vidieť. Takže v samotnej aplikácii overíme podporu operačného systému a následne realizovať efekt. Posledné rys java umožňuje vývojárom vytvárať rôzne druhy účinku na strane používateľského rozhrania. Ako všetci vieme, že vzhľad je dôležitý aspekt každého používateľského rozhrania aplikácie založené na. Takže developer je teraz vybavená nástrojmi, aby UI príjemnejšie a atraktívnejšie.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share