Miten luoda läpikuultava ja muotoinen Windows Java?

Yleiskatsaus: Tässä artikkelissa tulemme keskustelemaan siitä avoimuudesta ja eri muotoisia ikkunoita Java. Java 7 swing tukee tätä ominaisuutta ja tehdä swing käyttöliittymäkomponentteihin joustavampi ja käyttäjäystävällinen.

Käyttöönotto: Joissakin sovellus, läpinäkyvä ikkuna on vaatimus tukea sen toimivuus. Nyt Java, avoimuus voidaan toteuttaa. Läpikuultava ikkuna luodaan muuttamalla sen peittävyys toteuttamalla menetelmä nimeltä setOpacity on JFrame komponentti. Mutta meidän on ymmärrettävä, että läpikuultava ikkuna on mahdollista vain, jos taustalla käyttöjärjestelmä tukee sitä. Ja meidän on myös varmistaa, että ikkunaa ei sisustettu. Jotta ikkunan undecorated, sinun täytyy soittaa setUndecorated (totta) menetelmä. Joskus se on myös tarpeen muuttaa muotoa ikkunan UI. Toteuttaa se, Meidän täytyy soittaa setShape menetelmä sisällä componentResized menetelmä. Se laskee uuden muodon, kun ikkunan kokoa muutetaan.

Takaisin maahan: Java UI, tuki läpikuultavuus ja muotoinen ikkuna oli pitkään kysyntää Swing / AWT komponentteja. Äidinkielen kehitystä pääsyn nämä ominaisuudet ovat käytettävissä pitkään takaisin. Mutta se ei ollut pääsyä ydin java komponentteja. Vuonna java6 eteenpäin, tukea läpikuultavuus ja muotoinen ikkuna on käytettävissä. Jopa per pikseli taso läpikuultavuus on myös tukee Java7.

Tyyppi tuki läpikuultavuus ja avoimuus: Jaava 7 tukee seuraavat kolme minkälaista tukea.

Läpikuultava: Tässä on ikkuna voi olla eri värejä, mutta samalla tasolla peittävyyden. Joten alfa-arvo on sama kaikille pikseliä. Tämä tehoste soveltuu häivyttää pois ikkunan ja sitten vähitellen vähenee ja lisää alfa-arvo.

PERPIXEL_TRANSLUCENT: Tämä ominaisuus tukee eri alfa-arvot ikkunan itse. Tämä voidaan soittaa valitun alueen ikkunan.

PERPIXEL_TRANSPARENT: Tämä ominaisuus tukee eri muotoisia ikkunoita kuin perinteinen suorakaide. Jos per pikseli avoimuus on tuettu niin erilaisia ​​muotoja, kuten ympyrä, kolmio voidaan luoda.

Ennen kuin voimme käyttää mitä tahansa yllä mainittuja ominaisuuksia meidän täytyy testata tukea alla makaa käyttöjärjestelmän. Testi voidaan tehdä käyttämällä menetelmää isWindowTranslucencySupported kuuluvat java.awt.GraphicsDevice luokkaan. Se vie kalvotyypin syöttää ja palauttaa true / false osoittamaan tukea.

Olkaamme tarkistaa mallikoodi toteuttaa läpikuultavuus ominaisuus. Tässä esimerkissä olemme luoneet suorakaiteen läpikuultava ikkuna tekstikenttään. Ensinnäkin olemme poistaneet sisustus tilassa saada vahvistavaa vaikutusta. Sitten olemme tarkistaneet, jos taustalla käyttöjärjestelmä tukee sitä tai ei. Jos tuettu vaikutus on näkyvissä rungon ikkuna.

Listing1: Näyte osoittaa läpikuultavuus JFrame ikkuna

tuoda java.awt.Color;

tuoda java.awt.GraphicsDevice;

tuoda java.awt.GraphicsEnvironment;

tuoda java.awt.GridBagLayout;

tuoda java.awt.event.ComponentAdapter;

tuoda java.awt.event.ComponentEvent;

tuoda java.awt.geom.Rectangle2D;

tuoda javax.swing.JFrame;

tuoda javax.swing.JTextArea;

tuoda javax.swing.SwingUtilities;

julkinen luokka TransRecFrame ulottuu JFrame {

/**

* Luo läpinäkyvä suorakulmainen runko 85% läpinäkyvyys

*/

julkinen TransRecFrame() {

Super(“Läpikuultava suorakaiteen muotoinen”);

//Aseta layout

setLayout(uusi GridBagLayout());

//Luo tekstikenttään

lopullinen JTextArea txtArea = uusi JTextArea(5, 50);

txtArea.setBackground(Väri.CYAN);

lisätä(txtArea);

//Soita poistaa sisustus

setUndecorated(totta);

 

//Soita setShape kokoa muotonsa widnow kokoa muutetaan

addComponentListener(uusi ComponentAdapter() {

@ Ohitus

julkinen mitätöidä componentResized(ComponentEvent ja) {

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

}

});

//Tee ikkuna 85% läpinäkyvä

setOpacity(0.85f);

//Aseta muut parametrit

setLocationRelativeTo(nolla);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(totta);

}

julkinen staattinen mitätöidä tärkein(Jono[] args) {

//Luoda grafiikkaa ympäristö

Nuorten Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Tarkista, OS tukee Läpikuultavuus

jos (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Läpikuultava)) {

System.out.println(“OS tukee läpikuultavuus”);

uusi TransRecFrame();

}

}

}

Ominaisuuksia tukemaan läpikuultavuus ja muoto: Vuonna Java7 on pääasiassa kolmenlaisia ​​ominaisuuksia tukemaan läpikuultavuus ja muoto ikkuna.

  • Koko ikkunan läpikuultavuus: Tässä lähestymistavassa koko ikkunan on läpikuultava.
  • Per pikseli läpikuultavuus: Tässä lähestymistavassa ikkunan osa on läpikuultava
  • Muotoinen ikkunat: Tee eri muotoisia ikkunoita, kuten ovale, ympyrä, suorakulmainen jne..

Per pikseli läpikuultavuus:

Olemme jo nähneet, miten tehdä täydellinen ikkunan läpikuultava edellisessä esimerkissä. Nyt tulemme keskustelemaan toisen osa tekee joukko pikseliä läpikuultava käyttämällä niiden taustaväri. On joitakin rajoituksia toteuttaa tämä skenaario. Ikkunan pitäisi olla koko näytön ja järjestelmän on tuettava pikselitasolla läpikuultavuus. Loppuosa menettelystä on samanlainen kuin edellä esimerkissä.

Seuraavassa esimerkissä näemme, miten pikselitasolla läpikuultavuus sijaitsee kehyksessä.

Listing2: Näyte osoittaa pikselin tasolla läpikuultavuus tuki.

tuoda javax.swing.*;

tuoda java.awt. *;

tuoda java.awt.event.ActionEvent;

tuoda java.awt.event.ActionListener;

julkinen luokka PixelTranslucency ulottuu JFrame {

julkinen PixelTranslucency() {

Super(“Aseta pikselitasolla läpikuultavuus”);

//Aseta koko JFrame

setSize(250, 250);

//Aseta lay out

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

//Soita kuvakokoasetus

varten(int i = 0; minä < 16; i ){

lisätä(uusi Pixel Panel(255 – minä * 12));

}

//Aseta tausta ja muut ominaisuudet

setBackground(uusi Väri(0, 0, 0, 0));

setLocationRelativeTo(nolla);

setVisible(totta);

}

julkinen staattinen mitätöidä tärkein(Jono[] args) {

Nuorten Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Tarkista, ikkuna tukee läpikuultavuus

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

Järjestelmä.ulos.println(“OS tukee läpikuultavuus”);

uusi PixelTranslucency();

}

} yksityinen luokka Pixel Panel ulottuu JPanel {

yksityinen Pixel Panel(int pixl) {

Super();

setBackground(uusi Väri(0, 0, 255, pixl));

}

}

}

Shaped Windows:

Nyt tulemme keskustelemaan siitä toinen tärkeä ominaisuus tukee Java7.The muotoinen ikkuna tukee kaikkia muotoja riippumatta olla vaatimus käyttäjän. Tämä ominaisuus auttaa sinua luomaan minkä tahansa muodon, kuten ympyrä, kolmio, monikulmio tai mahdollisesti monimutkainen muoto. SetShape menetelmä ikkunaluokka on saatavilla asettaminen omaisuutta. Mutta jälleen kerran on muistettava, että koko näytön tilassa ei saisi ja käyttöjärjestelmä tukee läpikuultavuus.

Seuraava esimerkki osoittaa käyttö muotoinen ikkuna.

Listing3: Mallikoodi osoittaa käyttö muotoinen ikkuna.

tuoda javax.swing.*;

tuoda java.awt. *;

tuoda java.awt.geom.Ellipse2D;

tuoda java.awt.geom.GeneralPath;

julkinen luokka JavaShapedWindow ulottuu JFrame {

julkinen JavaShapedWindow() {

Super(“Aseta muotoinen ikkuna”);

//Aseta undecorated OFF saada vaikutusta

setUndecorated(totta);

//Säädetään koko

setSize(uusi Ulottuvuus(250, 250));

//Aseta monikulmio ominaisuudet

Polygon monikulmio = uusi Monikulmio();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Aseta arvot muodon

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

//Aseta yleinen polku ominaisuudet

GeneralPath gpath = uusi GeneralPath();

gpath.append(monikulmio, totta);

gpath.append(newCircle, totta);

//Aseta polku

setShape(gpath);

//Aseta laatikko ulkoasu

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

lisätä(Laatikko.createHorizontalGlue());

//Luo tarra ja kovettumisominaisuudet

JLabel newlabel = uusi JLabel(“Java muotoinen ikkuna”);

newlabel.setForeground(Väri.valkoinen);

lisätä(newlabel);

lisätä(Laatikko.createHorizontalGlue());

//Aseta sisällön ruudussa taustaväri

getContentPane().setBackground(Väri.syaani);

//Aseta sijainti

setLocationRelativeTo(nolla);

setVisible(totta);

}

julkinen staattinen mitätöidä tärkein(Jono[] args) {

Nuorten Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Tarkista käyttöjärjestelmän tuki tätä ominaisuutta

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

Järjestelmä.ulos.println(“OS tukee läpikuultavuus”);

uusi JavaShapedWindow();

}

}

}

Voimme myös toteuttaa kahden ominaisuuksia, kuten läpikuultavuutta ja muotoinen ikkuna. Toteuttaakseen tämän, soittaa setOpacity tapa kehykseen. Tuloksena ikkunassa näkyy yhdistetty vaikutus. On kuitenkin muistettava, taustalla käyttöjärjestelmä on tuettava pikselitasolla läpikuultavuus ja pikselin läpinäkyvyyden.

Johtopäätös:

Tässä artikkelissa olemme kattaa joitakin uusia ominaisuuksia java7.The läpikuultavuus ja muotoinen ikkuna ominaisuudet ovat todella mielenkiintoisia ja tee java käyttöliittymäkomponentteihin joustavampi. Mutta samaan aikaan meidän on muistettava, että taustalla käyttöjärjestelmä pitäisi tukea kaikkia näitä ominaisuuksia. Muussa tapauksessa vaikutus ei ole näkyvissä. Joten itse kanteen voimme tarkistaa käyttöjärjestelmän tuki ja toteuttaa vaikutus. Uusin ominaisuus java avulla kehittäjät voivat luoda erilaisia ​​vaikutuksia UI puolella. Kuten me kaikki tiedämme, että ulkoasu on tärkeä näkökohta kaikissa UI-pohjainen sovellus. Joten kehittäjä on nyt varustettu työkaluja tehdä UI miellyttävämpi ja houkutteleva.

============================================= ============================================== Osta parhaat tekniset kirjat Amazonista,en,sähköasentaja CT -kastaja,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share