Како да се создаде провидно и облик на Windows во Јава?

Преглед: Во оваа статија ние ќе разговараме за транспарентност и различни облик прозорци во Јава. Во Java 7 замав ја поддржува оваа функција и правење замав UI компоненти повеќе флексибилни и кориснички пријателски.

Вовед: Во некои апликации, транспарентен прозорец е услов за поддршка на неговата функционалност. Сега во Јава, транспарентност може да се спроведе. А проѕирен прозорец е создадена од страна на менување нејзините непроѕирноста со спроведување на метод наречен setOpacity на JFrame компонента. Но, ние мора да разберат дека проѕирен прозорец е можно само ако основниот оперативен систем го поддржува. И ние исто така треба да бидете сигурни дека прозорецот не е украсен. Да се ​​направи прозорец undecorated, треба да се јавите setUndecorated (вистина) метод. Некое време таа е исто така се бара да го промените обликот на прозорецот на графичката околина. Да се ​​имплементира, ние треба да се јавите setShape метод во рамките на componentResized метод. Ќе рекалкулиране обликот кога прозорецот е променета.

Назад Приземен: Во Java адаптери, поддршка за проѕирност и обликуван прозорец беше долго време побарувачката за нишалка / AWT компоненти. За мајчин развој пристап до овие својства се достапни од долго време назад. Но тоа не беше достапен за кор Јава компоненти. Во Java6 наваму, поддршка за проѕирност и обликуван прозорец е достапна. Дури и по пиксел ниво провидност е, исто така, поддржува во Java7.

Тип на поддршка за проѕирност и транспарентност: Јава 7 поддржува следниве три вид на поддршка.

Проѕирен: Во оваа функција на прозорецот може да има различни бои, но со истото ниво на непроѕирноста. Па алфа вредност е иста за сите на пиксели. Овој ефект е погодна за исчезнат исклучи еден прозорец, а потоа постепено се намалува и се зголемува вредноста на алфа.

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() {

@ Отфрли

јавноста поништат 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.Проѕирен)) {

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));

//Повик за пиксели амбиент

за(int i = 0; јас < 16; i ){

додадете(нови Пиксели панелот(255 – јас * 12));

}

//Намести позадина и други својства

setBackground(нови Боја(0, 0, 0, 0));

setLocationRelativeTo(нула);

setVisible(вистина);

}

јавноста статички поништат Главната(Стринг[] аргументи) {

Младински вложување GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Проверите дали прозорец поддржува провидност

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

Систем.надвор.println(“Оперативниот систем поддржува проѕирност”);

нови PixelTranslucency();

}

} приватни класа Пиксели панелот се протега JPanel {

приватни Пиксели панелот(int pixl) {

супер();

setBackground(нови Боја(0, 0, 255, pixl));

}

}

}

Облик на Windows:

Сега ние ќе разговараме за уште една важна карактеристика поддржан од Java7.The обликуван прозорец поддржува сите видови на облици што и да биде барањето на корисникот. Оваа функција ви помага да се создаде било која форма како круг, триаголник, многуаголник или било можно комплексни форма. На setShape метод на класата на прозорецот е достапен за поставување на имотот. Но повторно имаме да се запамети дека цел екран не треба да биде дозволено и на оперативниот систем поддржува проѕирност.

Следниот пример покажува користењето на обликуван прозорец.

Listing3: Примерокот кодот покажува користењето на обликуван прозорец.

увоз javax.swing.*;

увоз java.awt. *;

увоз java.awt.geom.Ellipse2D;

увоз java.awt.geom.GeneralPath;

јавноста класа JavaShapedWindow се протега JFrame {

јавноста JavaShapedWindow() {

супер(“Постави обликуван прозорец”);

//Постави undecorated OFF да се добие ефект

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(“Јава обликуван прозорец”);

newlabel.setForeground(Боја.бело);

додадете(newlabel);

додадете(Кутија.createHorizontalGlue());

//Намести содржина панелот боја на позадина

getContentPane().setBackground(Боја.цијан);

//Постави локација

setLocationRelativeTo(нула);

setVisible(вистина);

}

јавноста статички поништат Главната(Стринг[] аргументи) {

Младински вложување GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Проверете OS поддршка за овој имот

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

Систем.надвор.println(“Оперативниот систем поддржува проѕирност”);

нови JavaShapedWindow();

}

}

}

Ние, исто така, може да се спроведе комбинација на две функции, како проѕирност и обликуван прозорец. За спроведување на оваа, јавете се setOpacity метод за вашата рамка. Резултат прозорец ќе се прикаже на комбинираниот ефект. Но, ние треба да се запамети основниот оперативен систем мора да поддржува пиксел ниво проѕирност и пиксел ниво транспарентност.

Заклучок:

Во оваа статија ние се опфатени некои нови функции во java7.The проѕирност и обликуван прозорец карактеристики се навистина интересни и направи Јава UI компоненти пофлексибилна. Но во исто време не смееме да заборавиме дека основниот оперативен систем треба да ги поддржи сите овие особини. Инаку ефектот не ќе бидат видливи. Па во самата апликација ние проверете поддршка оперативен систем, а потоа спроведување на ефектот. Најдоцна функција на Java им овозможува на програмерите да креираат различни типови на ефект на страната на графичката околина. Како што сите знаеме дека изгледот и чувството е важен аспект на сите адаптери базирана апликација. Значи инвеститорот е сега се опремени со алатки за да се направи адаптери повеќе пријатен и атрактивен.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share