Як стварыць празрысты і формы вокны ў Java?

Агляд: У гэтым артыкуле мы пагаворым аб празрыстасці і розныя формы вокны ў Java. У Java 7 арэлі падтрымкай гэтай функцыі і складнікі кампаненты арэлі UI больш гнуткай і зручнай для карыстальнікаў.

Увядзенне: У некаторых прыкладанняў, Празрыстае акно з'яўляецца патрабаваннем для падтрымкі сваёй функцыянальнасці. Зараз у Java, празрыстасці можа быць рэалізаваны. Напаўпразрыстыя вокны ствараецца шляхам змены яго празрыстасць шляхам рэалізацыі метаду, званага setOpacity на JFrame кампанент. Але мы павінны разумець, што напаўпразрыстыя вокны магчыма, толькі калі асноўная аперацыйная сістэма падтрымлівае яго. І мы таксама павінны пераканацца, што акно не ўпрыгожана. Каб зрабіць акно аднатонная, вам трэба патэлефанаваць setUndecorated (праўда) метад. Некаторы час ён таксама абавязаны змяніць форму вокны UI. Для яе рэалізацыі, мы павінны выклікаць метад у SetShape componentResized метад. Гэта будзе пералічваць форму пры змене памераў акна.

Задняя зямля: У Java UI, падтрымка празрыстасці вокны і формы была доўгая час попыт на Кампаненты Swing / AWT. Для ўласнага доступу да развіцця гэтых уласцівасцяў даступныя з доўгі час таму. Але гэта была не даступная для асноўных кампанентаў Java. У Java6 наперад, падтрымка празрыстасці і формы акна даступна. Нават на піксель празрыстасці узроўні таксама падтрымлівае ў java7.

Тып падтрымкай празрыстасці і празрыстасці: Ява 7 падтрымлівае наступныя тры тыпу падтрымкі.

TRANSLUCENT: У гэтую функцыю вокны могуць мець розныя колеру, але з тым жа узроўнем непразрыстасці. Так што значэнне альфа аднолькавым для ўсіх пікселяў. Гэты эфект падыходзіць для знікаць з акном, а затым паступова памяншаецца, і павялічвае значэнне альфа.

PERPIXEL_TRANSLUCENT: Гэта ўласцівасць падтрымлівае розныя значэнні альфа ў самым акне. Гэта выкарыстоўваецца для плыўнага абранай вобласці вокны.

PERPIXEL_TRANSPARENT: Гэта ўласцівасць падтрымлівае розныя формы вокнаў, а ня традыцыйнага прамавугольніка. Калі на піксель празрыстасці падтрымліваецца, то розныя формы, як круг, трохкутнік можа быць створаны.

Перад тым, як выкарыстоўваць любы з названых вышэй уласцівасцяў нам трэба праверыць падтрымку ляжыць пад аперацыйнай сістэмай. Тэст можа быць зроблена з дапамогай метаду isWindowTranslucencySupported належаць класу java.awt.GraphicsDevice. Ён прымае тып празрыстасці ў якасці ўваходных дадзеных і вяртае ісціна / хлусьня, каб паказаць падтрымкі.

Давайце праверым ўзор кода для рэалізацыі напаўпразрыстасці функцыя. У гэтым прыкладзе мы стварылі прастакутныя напаўпразрыстыя вокны на тэкставую вобласць. Спачатку мы адключылі ўпрыгажэнні рэжыме, каб атрымаць эфект празрыстасці. Затым мы праверылі, калі асноўная аперацыйная сістэма падтрымлівае гэта ці не. Калі падтрымліваецца эфект прыкметны на раме акна.

Listing1: Прыклад, які дэманструе празрыстасць вокны JFrame

імпартаваць java.awt.Color;

імпартаваць java.awt.GraphicsDevice;

імпартаваць java.awt.GraphicsEnvironment;

імпартаваць java.awt.GridBagLayout;

імпартаваць java.awt.event.ComponentAdapter;

імпартаваць java.awt.event.ComponentEvent;

імпартаваць java.awt.geom.Rectangle2D;

імпартаваць javax.swing.JFrame;

імпартаваць javax.swing.JTextArea;

імпартаваць javax.swing.SwingUtilities;

грамадскасць клас TransRecFrame пашыраецца JFrame {

/**

* Стварыць празрыстую прастакутную рамку з 85% празрыстасць

*/

грамадскасць TransRecFrame() {

супер(“Празрысты прастакутную рамку”);

//Ўсталяваць набор

SetLayout(новае GridBagLayout());

//Стварэнне вобласці

канчатковы JTextArea txtArea = новае JTextArea(5, 50);

txtArea.setBackground(Колер.ГОЛУБОЙ);

дадаваць(txtArea);

//Патэлефануйце, каб адключыць ўпрыгажэнні

setUndecorated(праўда);

 

//Патэлефануйце SetShape, каб змяніць памер формы, калі widnow змене памеру

addComponentListener(новае ComponentAdapter() {

@ Override

грамадскасць анулявання componentResized(ComponentEvent і) {

SetShape(новае Rectangle2D.Double(0, 0, GetWidth(), GetHeight()));

}

});

//Зрабіць акно 85% празрысты

setOpacity(0.85фа);

//Усталюйце іншыя параметры

setLocationRelativeTo(нулявы);

SETSIZE(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

SetVisible(праўда);

}

грамадскасць статычны анулявання асноўнай(Радок[] аргументы) {

//Стварыць Графічнае асяроддзе

Моладзевых ініцыятыў GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Праверце, калі аперацыйная сістэма падтрымлівае Напаўпразрысты

калі (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“АС падтрымлівае напаўпразрыстага”);

новае TransRecFrame();

}

}

}

Функцыі для падтрымкі празрыстасці і формы: У java7 Існуюць у асноўным тры функцыі, даступныя для падтрымкі напаўпразрыстасці і форма вокны.

  • Поўная празрыстасць вокны: Пры такім падыходзе поўнае акно напаўпразрыстым.
  • Попиксельное напаўпразрыстага: Пры такім падыходзе частку акна з'яўляецца празрыстым
  • Формы акна: Зрабіць рознай формы авальнага акна, як, круг, прастакутная і г.д..

Попиксельное напаўпразрыстага:

Мы ўжо бачылі, як зрабіць поўную напаўпразрыстыя вокны ў папярэднім прыкладзе. Цяпер мы абмяркуем другой частцы стварэння набору напаўпразрыстых пікселяў, выкарыстоўваючы свае колеру фону. Існуюць некаторыя абмежаванні для рэалізацыі гэтага сцэнара. Акно не ва ўвесь экран, і сістэма павінна падтрымліваць празрыстасць пікселя узроўні. У астатнім працэдура аналагічная прыведзенага вышэй прыкладу.

У наступным прыкладзе мы ўбачым, як празрыстасць пікселя ўзровень усталёўваецца ў рамку.

Listing2: Прыклад, які дэманструе ўзровень пікселяў Падтрымка напаўпразрыстасці.

імпартаваць javax.swing.*;

імпартаваць java.awt. *;

імпартаваць java.awt.event.ActionEvent;

імпартаваць java.awt.event.ActionListener;

грамадскасць клас PixelTranslucency пашыраецца JFrame {

грамадскасць PixelTranslucency() {

супер(“Усталюйце празрыстасць узроўні пікселяў”);

//Ўсталяваць памер JFrame

SETSIZE(250, 250);

//Ўсталяваць выкласці

getContentPane().SetLayout(новае GridLayout(6, 6));

//Тэлефануйце для налады кропак

для(дзесятковага I = 0; я ≪ 16; я ){

дадаваць(новае Пікселя панэлі(255 – я * 12));

}

//Ўсталяваць фону і іншыя ўласцівасці

setBackground(новае Колер(0, 0, 0, 0));

setLocationRelativeTo(нулявы);

SetVisible(праўда);

}

грамадскасць статычны анулявання асноўнай(Радок[] аргументы) {

Моладзевых ініцыятыў GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Праверце, калі акно падтрымлівае напаўпразрысты

калі (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Сістэма.з.Println(“АС падтрымлівае напаўпразрыстага”);

новае PixelTranslucency();

}

} прыватны клас Пікселя панэлі пашыраецца JPanel {

прыватны Пікселя панэлі(дзесятковага Pixl) {

супер();

setBackground(новае Колер(0, 0, 255, Pixl));

}

}

}

Формы акна:

Зараз мы пагаворым аб яшчэ адной важнай функцыяй, якая падтрымліваецца Java7.The формы акна падтрымлівае ўсе тыпы фігур, якія б ні былі патрабаванні карыстальніка. Гэтая функцыя дазваляе ствараць любыя формы, як круг, трохкутнік, шматкутніка або любыя магчымыя складанай формы. SetShape метад класа вокны даступны для ўстаноўкі ўласцівасці. Але, зноў жа, мы павінны памятаць, што поўнаэкранным рэжыме не павінна быць дазволена і аперацыйная сістэма падтрымлівае напаўпразрыстага.

У наступным прыкладзе паказана выкарыстанне формы акна.

Listing3: Прыклады кода, якія ілюструюць выкарыстанне формы акна.

імпартаваць javax.swing.*;

імпартаваць java.awt. *;

імпартаваць java.awt.geom.Ellipse2D;

імпартаваць java.awt.geom.GeneralPath;

грамадскасць клас JavaShapedWindow пашыраецца JFrame {

грамадскасць JavaShapedWindow() {

супер(“Ўсталяваць формы акна”);

//Ўсталяваць аднатонная прэч, каб атрымаць эфект

setUndecorated(праўда);

//Ўсталяваць памер

SETSIZE(новае Вымярэнне(250, 250));

//Набор уласцівасцяў шматкутнікаў

Палігон = палігона новае Шматкутнік();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Усталюйце значэння для формы

Ellipse2D.Double newCircle = новае Ellipse2D.Double(0, 50, 1.0*100, 1.0*100);

//Ўсталяваць агульныя ўласцівасці шляху

GeneralPath GPATH = новае GeneralPath();

gpath.append(шматкутнік, праўда);

gpath.append(newCircle, праўда);

//Усталяваць шлях

SetShape(GPATH);

//Усталюеце сцяжок, макет

getContentPane().SetLayout(новае BoxLayout(getContentPane(), BoxLayout.X_AXIS));

дадаваць(Скрынка.createHorizontalGlue());

//Стварэнне этыкеткі і зададзенымі ўласцівасцямі

JLabel newlabel = новае JLabel(“Java формы акна”);

newlabel.setForeground(Колер.белы);

дадаваць(newlabel);

дадаваць(Скрынка.createHorizontalGlue());

//Усталюйце панэль кантэнту колер фону

getContentPane().setBackground(Колер.блакітны);

//Паказаны Месца

setLocationRelativeTo(нулявы);

SetVisible(праўда);

}

грамадскасць статычны анулявання асноўнай(Радок[] аргументы) {

Моладзевых ініцыятыў GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Праверце Падтрымка АС для гэтага ўласцівасці

калі (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Сістэма.з.Println(“АС падтрымлівае напаўпразрыстага”);

новае JavaShapedWindow();

}

}

}

Мы можам таксама рэалізаваць спалучэнне двух функцый, такіх як вокны празрыстасці і формы. Для рэалізацыі гэтага, патэлефануеце setOpacity метад у кадры. У выніку адкрыецца акно сукупны эфект. Але варта памятаць, асноўная аперацыйная сістэма павінна падтрымліваць празрыстасць пікселя ўзроўню і празрыстасці узроўні пікселяў.

Заключэнне:

У гэтым артыкуле мы разгледзелі некаторыя новыя функцыі ў java7.The празрыстасці і формы функцыі вокны сапраўды цікавыя і зрабіць Java кампанентаў карыстацкага інтэрфейсу больш гнуткія. Але ў той жа час мы павінны памятаць, што асноўная аперацыйная сістэма павінна падтрымліваць усе гэтыя ўласцівасці. У адваротным выпадку эфекту не будзе відаць. Такім чынам, у самым дадатку мы правяраем падтрымку АС, а затым рэалізацыі эфекту. Апошняя асаблівасць дазваляе Java распрацоўнікам ствараць розныя тыпы ўздзеяння на баку карыстацкага інтэрфейсу. Як мы ўсе ведаем, што знешні выгляд з'яўляецца важным аспектам любога карыстацкага інтэрфейсу прыкладання. Такім чынам, распрацоўшчык цяпер аснашчаны інструментамі, каб зрабіць карыстацкі інтэрфейс больш прыемным і прывабным.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share