Nola zeharrargitsu eta Formaren Java Windows sortzeko?

Orokorra: Artikulu honetan, gardentasuna eta hainbat formako leihoak Java buruz egingo dugu eztabaidatzeko. Java 7 swing eta eginbide hori onartzen eta swing UI osagai malguagoak eta lagungarri egiten.

Sarrera: Aplikazio batzuetan, gardena leiho baldintza bat bere funtzionalitatea babestea. Orain Java, gardentasuna ezartzea. Zeharrargi leiho bat bere opakutasuna aldatzeko sortutako metodo bat izeneko setOpacity ezartzeko JFrame osagai baten gainean. Baina ulertzen zeharrargi leiho bat baino ez da posible azpiko sistema eragilea onartzen badu behar dugu. Eta ere behar dugu ziurtatu duen leihoa ez dago apainduta egiteko. Leiho bat undecorated egiteko, setUndecorated deitu behar duzu (Egia) metodoa. Denbora batzuk ere behar da leiho UI baten forma aldatzeko. Jartzera, setShape metodoa deitzeko metodoa componentResized barruan behar dugu. Birkalkulatu ditu forma denean, leihoaren tamaina aldatu.

Itzuli Beheko: Java UI en, Gardentasuna eta itxurako leiho euskarri Swing / AWT osagai denbora luzea izan zen, eskaria. Garapen Native sartzeko propietate horiek ez dira denbora luzean berriz eskuragarri. Baina hura ez zen izan core Java osagaien irisgarria. Java6 aurrera hasi, Gardentasuna laguntza eta itxurako leiho erabilgarri dago. Maila Gardentasuna pixel bakoitzeko, nahiz eta, era berean, Java7 onartzen.

Laguntza mota Gardentasuna eta gardentasuna: Java 7 laguntzeko ondorengo hiru mota onartzen.

Zeharrargi: Ezaugarri hau leihoaren opakutasuna du baina maila berean kolore ezberdinak izan ditzake:. Beraz, alfa balioa da bera pixel guztien. Efektu hau desagertzen off leiho bat egokia da eta, ondoren, pixkanaka-pixkanaka gutxitzen eta alfa balioa handitzen.

PERPIXEL_TRANSLUCENT: Jabetza hori onartzen desberdinen alpha balio leiho barruan. Hau erabiltzen da, leiho eskualde hautatutako fade to.

PERPIXEL_TRANSPARENT: Jabetza hori onartzen leihoak forma ezberdinak baizik laukizuzen tradizionalak baino. Pixel bakoitzeko gardentasuna onartzen bada, orduan zirkulua bezalako forma, triangelu sortu daiteke.

Erabiltzen ditugu goiko propietate aurretik laguntza probatzeko etzanda sistema eragilearen pean behar dugu. Test metodoa erabiliz egin daiteke isWindowTranslucencySupported to java.awt.GraphicsDevice klasea pertenecientes. Gardentasun mota hartzen ditu sarrera moduan eta itzultzen egia / gezurra laguntza adierazteko.

Demagun lagin kode bat egiaztatu gurekin Gardentasuna Ezaugarri ezartzeko. Adibide honetan sortu dugu angeluzuzena zeharrargi leihoa testu-area batean. Lehen desgaitu dugu dekorazioa modua gardentasuna efektua lortzeko. Ondoren, egiaztatu dugu azpiko sistema eragilea onartzen badu edo ez. Onartzen bada efektua ikusgai markoa leihoan.

Listing1: Sample erakusten JFrame leiho bat Gardentasuna

inportatu java.awt.Color;

inportatu java.awt.GraphicsDevice;

inportatu java.awt.GraphicsEnvironment;

inportatu java.awt.GridBagLayout;

inportatu java.awt.event.ComponentAdapter;

inportatu java.awt.event.ComponentEvent;

inportatu java.awt.geom.Rectangle2D;

inportatu javax.swing.JFrame;

inportatu javax.swing.JTextArea;

inportatu javax.swing.SwingUtilities;

publikoak klase TransRecFrame hedatzen da JFrame {

/**

* Sortu gardena marko laukizuzen batera 85% gardentasuna

*/

publikoak TransRecFrame() {

super(“Zeharrargi marko laukizuzen”);

//Ezarri diseinua

setLayout(berriak GridBagLayout());

//Sortu testu-eremu bat

azken JTextArea txtArea = berriak JTextArea(5, 50);

txtArea.setBackground(Kolorea.Zian);

gehitu(txtArea);

//Deitu dekorazioa desgaitzeko

setUndecorated(Egia);

 

//Deitu setShape forma aldatzeko denean widnow tamaina aldatu

addComponentListener(berriak ComponentAdapter() {

@ Override

publikoak gal componentResized(ComponentEvent eta) {

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

}

});

//Leihoa 85% gardena

setOpacity(0.85f);

//Ezarri beste parametro

setLocationRelativeTo(zero);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(Egia);

}

publikoak estatiko gal nagusia(Katea[] argumentuak) {

//Sortu grafikoak ingurumena

Gazteria Arrisku GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Begiratu OS onartzen badu Gardentasuna

bada (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Zeharrargi)) {

System.out.println(“OS onartzen Gardentasuna”);

berriak TransRecFrame();

}

}

}

Ezaugarriak Gardentasuna eta forma laguntzeko: Java7 daude, batez ere, hiru ezaugarri eskuragarri Gardentasuna eta leiho baten forma laguntzeko.

  • Leiho osoko Gardentasuna: Planteamendu honetan full leiho zeharrargitsuak.
  • Gardentasuna pixel bakoitzeko: Planteamendu honetan leiho zati bat da zeharrargi
  • Itzaldun leihoak: Egin ezberdinak ovale bezala leihoak formako, zirkulua, angeluzuzena eta abar.

Gardentasuna pixel bakoitzeko:

Dagoeneko ikusi dugu nola osoa leiho zeharrargitsuak egiteko aurreko adibidean. Orain pixel zeharrargi multzo bat egiteko bigarren zatia buruz hitz egingo dugu haien atzeko planoaren kolorea erabiliz. Badira muga batzuk eszenatoki hau ezartzeko. Leiho behar ez pantaila osoan izan eta sistema pixel maila Gardentasuna onartu behar du. Prozedura gainerako da, batez ere, adibidez, antzeko.

Adibide honetan ikusten da nola maila pixel Gardentasuna da marko batean ezarri ahal izango dugu.

Listing2: Sample erakusten pixel maila Gardentasuna laguntza.

inportatu javax.swing.*;

inportatu java.awt. *;

inportatu java.awt.event.ActionEvent;

inportatu java.awt.event.ActionListener;

publikoak klase PixelTranslucency hedatzen da JFrame {

publikoak PixelTranslucency() {

super(“Ezarri pixel maila Gardentasuna”);

//Ezarri JFrame tamaina

setSize(250, 250);

//Ezarri arautuko out

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

//Pixel ezarpena deialdia

for(int i = 0; i < 16; i ){

gehitu(berriak Pixel Panel(255 – i * 12));

}

//Ezarri atzeko planoan eta beste propietate

setBackground(berriak Kolorea(0, 0, 0, 0));

setLocationRelativeTo(zero);

setVisible(Egia);

}

publikoak estatiko gal nagusia(Katea[] argumentuak) {

Gazteria Arrisku GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Begiratu leiho onartzen badu Gardentasuna

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

Sistema.errondan.println(“OS onartzen Gardentasuna”);

berriak PixelTranslucency();

}

} pribatua klase Pixel Panel hedatzen da JPanel {

pribatua Pixel Panel(int pixl) {

super();

setBackground(berriak Kolorea(0, 0, 255, pixl));

}

}

}

Formako Windows:

Orain ezaugarri bat garrantzitsua itxurako Java7.The leiho k onartzen buruz eztabaidatu ahal izango dugu onartzen formak, mota edozein dela, erabiltzaileak baldintza. Ezaugarri honek zirkulu forma bezala sortu nahi duzun, triangelu, poligono edo edozein forma konplexuak. Leiho klase metodoa setShape eskuragarri dago jabetza ezartzeko. Baina, berriro pantaila osoko modua ez dela onartzen gogoratu behar dugu, eta sistema eragilearen Gardentasuna onartzen.

Ondorengo adibidez leiho itxurako erabilera erakusten.

Listing3: Leiho itxurako erabilera erakusten lagin kodea.

inportatu javax.swing.*;

inportatu java.awt. *;

inportatu java.awt.geom.Ellipse2D;

inportatu java.awt.geom.GeneralPath;

publikoak klase JavaShapedWindow hedatzen da JFrame {

publikoak JavaShapedWindow() {

super(“Ezarri itxurako leihoa”);

//Ezarri undecorated OFF efektu bat lortzeko

setUndecorated(Egia);

//Tamaina ezarri

setSize(berriak Dimension(250, 250));

//Ezarri Poligonoaren propietateak

Poligonoaren poligono = berriak Poligonoaren();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Ezarri forma balioak

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

//Oro har bide propietate

GeneralPath gpath = berriak GeneralPath();

gpath.append(Poligonoaren, Egia);

gpath.append(newCircle, Egia);

//Ezarri bidea

setShape(gpath);

//Ezarri kutxa diseinua

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

gehitu(Kutxa.createHorizontalGlue());

//Sortu etiketa eta multzo propietate

JLabel newlabel = berriak JLabel(“Java Formaren leihoa”);

newlabel.setForeground(Kolorea.zuri);

gehitu(newlabel);

gehitu(Kutxa.createHorizontalGlue());

//Ezarri edukiak panelean atzeko plano kolore

getContentPane().setBackground(Kolorea.zian);

//Ezarri kokapena

setLocationRelativeTo(zero);

setVisible(Egia);

}

publikoak estatiko gal nagusia(Katea[] argumentuak) {

Gazteria Arrisku GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Begiratu OS jabetza honentzat laguntza

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

Sistema.errondan.println(“OS onartzen Gardentasuna”);

berriak JavaShapedWindow();

}

}

}

Era berean, ezin dugu ezartzea bi ezaugarri konbinazio Gardentasuna eta itxurako leiho bezala. Hau ezartzeko, deitu setOpacity metodoa zure markoa. Ondorioz leiho konbinatuko eragina erakutsiko du. Baina gogoratu azpiko pixel sistema eragilearen maila eta Gardentasuna pixel gardentasun maila onartu behar dugu behar.

Ondorioa:

Artikulu honetan azaltzen dugu, ezaugarri berri batzuk Gardentasuna java7.The eta itxurako leiho ezaugarri benetan interesgarria eta Java UI osagai malguagoak. Baina, aldi berean, gogoratu azpiko sistema eragilea duten propietate horiek guztiak lagundu behar behar dugu. Bestela, efektua ez da izango ikusgai. Beraz, aplikazio bertan OS laguntza egiaztatu dugu, eta, ondoren, eragina ezartzeko. Java ezaugarri Azken ahalbidetzen garatzaileei efektu mota ezberdinak sortzeko UI aldean. Guztiak ezagutzen dugun bezala, itxura eta sentitzen edozein oinarritutako UI aplikazio alderdi garrantzitsu bat da. Beraz, sustatzailearen dago orain Tresna hornituta UI gehiago atsegin eta erakargarri egiteko.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share