Jak vytvořit průsvitné a tvaru Windows v jazyce Java?

Přehled: V tomto článku budeme diskutovat o transparentnosti a různých tvaru okna v Javě. V Javě 7 houpačka tuto funkci podporuje a dělat komponenty UI houpačka flexibilnější a uživatelsky přívětivé.

Úvod: V některých aplikací, průhledný je požadavek na podporu jeho funkčnost. Nyní v Javě, transparentnost může být provedena. Průsvitný okno je vytvořen tím, že mění její krytí zavedením metodu nazvanou setOpacity na JFrame složky. Ale musíme pochopit, že průsvitné okno je možné pouze v případě, že základní operační systém podporuje. A také je třeba se ujistit, že není okno zdobí. Chcete-li okno nezdobené, budete muset zavolat setUndecorated (skutečný) metoda. Nějaký čas je také nutné změnit tvar okna UI. Chcete-li implementovat, musíme zavolat metodu setShape v componentResized metody. Je to přepočítá tvar při změně velikosti okna.

Zpět na zem: V java rozhraní, Podpora průsvitnosti a tvaru okna byla dlouhá časová náročnost pro Swing / AWT komponenty. Pro nativní vývoj přístupu k těmto vlastnostem jsou k dispozici na dlouhou dobu zpět. Ale to nebylo přístupné základních Java komponenty. V java6 kupředu, podpora průsvitnosti a tvarované okno je k dispozici. Dokonce i na úrovni pixelů průsvitnosti je rovněž podporuje Java7.

Druh podpory průsvitnosti a průhlednosti: Jáva 7 podporuje následující tři typy podpory.

TRANSLUCENT: V této funkci se okno může mít různé barvy, ale se stejnou úrovní krytí. Takže je hodnota alpha stejná pro všechny pixely. Tento efekt je vhodný pro netrvá okna a poté se postupně snižuje a zvyšuje hodnotu alfa.

PERPIXEL_TRANSLUCENT: Tato vlastnost podporuje různé hodnoty alfa v rámci samotného okna. Toto je použít k zeslabení vybranou oblast okna.

PERPIXEL_TRANSPARENT: Tato vlastnost podporuje různé tvary oken, spíše než tradiční obdélník. Pokud na pixel je podporována průhlednost pak různé tvary jako kružnice, trojúhelník může být vytvořen.

Než jsme se použít některý z výše uvedených vlastností, musíme otestovat podporu pod ležící operačního systému. Test může být provedeno s použitím metody isWindowTranslucencySupported patří do třídy java.awt.GraphicsDevice. Bere typ fólie jako vstup a vrací true / false uvést podporu.

Pojďme zkontrolovat ukázkový kód implementovat průsvitnosti funkci. V tomto příkladu jsme vytvořili obdélníkovou průsvitné okno v textové oblasti. Nejprve jsme zakázali dekorace režimu získat efekt průhlednosti. Pak jsme se zkontrolovat, zda použitý operační systém podporuje, nebo ne. Pokud je to podporováno efekt je viditelný na rámu okna.

Listing1: Příklad ukazuje průsvitnosti 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;

veřejnost třída TransRecFrame rozšiřuje JFrame {

/**

* Vytvořit transparentní obdélníkový rám s 85% průhlednost

*/

veřejnost TransRecFrame() {

Super(“Průsvitný obdélníkový rámeček”);

//Nastavení rozvržení

setLayout(nový GridBagLayout());

//Vytvořte textové pole

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

txtArea.setBackground(Barva.CYAN);

přidat(txtArea);

//Výzva k zakázání dekorace

setUndecorated(skutečný);

 

//Zavolejte setShape změnit velikost tvaru, kdy widnow změně velikosti

addComponentListener(nový ComponentAdapter() {

@ Override

veřejnost zrušit componentResized(ComponentEvent a) {

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

}

});

//Zkontrolujte okno 85% průhledný

setOpacity(0.85F);

//Nastavit další parametry

setLocationRelativeTo(nula);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(skutečný);

}

veřejnost statický zrušit hlavní(Řetěz[] args) {

//Vytvoření grafického prostředí

Youth Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Zkontrolujte, zda operační systém podporuje Translucence

jestliže (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS podporuje průsvitnost”);

nový TransRecFrame();

}

}

}

Funkce na podporu průsvitnost a tvar: V Java7 jsou především tři funkce jsou k dispozici na podporu průsvitnost a tvar okna.

  • Plný okno průsvitnost: Se v tomto případě celé okno je průsvitná.
  • Na pixel průsvitnosti: V tomto přístupu se část okna je průsvitný
  • Tvarové okna: Zkontrolujte, různé tvarované okna jako ovale, kruh, obdélníkový atd..

Na pixel průsvitnosti:

Už jsme viděli, jak udělat kompletní okna průsvitného v předchozím příkladu. Nyní se budeme zabývat druhou část tvorby sadu pixelů průsvitných pomocí jejich barvu pozadí. Existují určitá omezení k provedení tohoto scénáře. Okno nesmí být na celé obrazovce a systém musí podporovat pixel úrovni průsvitnost. Další postup je podobný jako výše uvedený příklad.

V následujícím příkladu uvidíme, jak se pixel úroveň průsvitnosti zasazen do rámu.

Listing2: Příklad ukazuje pixel úroveň průsvitnosti podpora.

import javax.swing.*;

import java.awt *.;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

veřejnost třída PixelTranslucency rozšiřuje JFrame {

veřejnost PixelTranslucency() {

Super(“Nastavit úrovni pixelů průsvitnost”);

//Nastavit velikost JFrame

setSize(250, 250);

//Nastavit vyložit

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

//Výzva k pixelů

pro(int i = 0; já < 16; i ){

přidat(nový Pixel Panel(255 – já * 12));

}

//Nastavit pozadí a další vlastnosti

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

setLocationRelativeTo(nula);

setVisible(skutečný);

}

veřejnost statický zrušit hlavní(Řetěz[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Zkontrolujte, zda okno podporuje průsvitnost

jestliže (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Systém.ven.System.out.println(“OS podporuje průsvitnost”);

nový PixelTranslucency();

}

} soukromý třída Pixel Panel rozšiřuje JPanel {

soukromý Pixel Panel(int pixl) {

Super();

setBackground(nový Barva(0, 0, 255, pixl));

}

}

}

Tvarové Windows:

Nyní budeme diskutovat o další důležité funkce podporované Java7.The tvaru okna podporuje všechny typy tvarů nehledě na požadavek uživatele. Tato funkce vám pomůže vytvořit jakýkoli tvar jako kruh, trojúhelník, polygon nebo možná složitý tvar. SetShape Metoda třídy okna je k dispozici pro nastavení vlastnosti. Ale znovu musíme mít na paměti, že režim celé obrazovky by nemělo být dovoleno, a operační systém podporuje průsvitnost.

Následující příklad ukazuje použití ve tvaru okna.

Listing3: Ukázkový kód ukazuje použití ve tvaru okna.

import javax.swing.*;

import java.awt *.;

import java.awt.geom.Ellipse2D;

import java.awt.geom.GeneralPath;

veřejnost třída JavaShapedWindow rozšiřuje JFrame {

veřejnost JavaShapedWindow() {

Super(“Set ve tvaru okna”);

//Nastavit nezdobené OFF získat vliv

setUndecorated(skutečný);

//Nastavení velikosti

setSize(nový Rozměr(250, 250));

//Nastavit polygon vlastnosti

Polygon polygon = nový Polygon();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Nastavení hodnoty tvaru

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

//Nastavení obecných vlastností cesty

GeneralPath gpath = nový GeneralPath();

gpath.append(polygon, skutečný);

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

//Nastavení cesty

setShape(gpath);

//Nastavit box rozvržení

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

přidat(Box.createHorizontalGlue());

//Vytvořte štítek a nastavit vlastnosti

JLabel newlabel = nový JLabel(“Java ve tvaru okna”);

newlabel.setForeground(Barva.bílý);

přidat(newlabel);

přidat(Box.createHorizontalGlue());

//Nastavit podokně obsahu barvu pozadí

getContentPane().setBackground(Barva.cyan);

//Nastavit umístění

setLocationRelativeTo(nula);

setVisible(skutečný);

}

veřejnost statický zrušit hlavní(Řetěz[] args) {

Youth Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Zkontrolujte OS podporu pro tuto vlastnost

jestliže (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Systém.ven.System.out.println(“OS podporuje průsvitnost”);

nový JavaShapedWindow();

}

}

}

Můžeme také realizovat kombinaci dvou funkcí, jako je průsvitnost a tvaru okna. K provedení tohoto, volání setOpacity metody rámečku. Výsledkem okně se zobrazí kombinovaný účinek. Ale měli bychom si uvědomit základní operační systém musí podporovat pixel úroveň průsvitnosti a průhlednosti úrovni pixelů.

Závěr:

V tomto článku jsme se zabývali některé nové funkce v java7.The průsvitnosti a tvarované okno funkce jsou opravdu zajímavé a aby java UI komponenty pružnější. Ale zároveň musíme mít na paměti, že základní operační systém by měl podporovat všechny tyto vlastnosti. Jinak efekt nebude vidět. Takže v samotné aplikaci ověříme podporu operačního systému a následně realizovat efekt. Poslední rys java umožňuje vývojářům vytvářet různé druhy účinku na straně uživatelského rozhraní. Jak všichni víme, že vzhled je důležitý aspekt každého uživatelského rozhraní aplikace založené na. Takže developer je nyní vybavena nástroji, aby UI příjemnější a atraktivnější.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share