Как да се създаде прозрачна, профили Windows в Java?

Преглед: В тази статия ще говорим за прозрачността и различни форми прозорци в Java. В Java 7 люлка поддържа тази функция и производството на компоненти за люлка на потребителския интерфейс по-гъвкава и лесна за ползване.

Въвеждане: В някои заявление, прозрачен прозорец е изискване в подкрепа на неговата функционалност. Сега в Java, прозрачност може да се прилага. A полупрозрачен прозорец се създава чрез промяна на тяхната непрозрачност чрез прилагане на метод, наречен setOpacity на JFrame компонент. Но ние трябва да разберем, че полупрозрачен прозорец е възможно само ако операционната система поддържа. И ние също трябва да се уверете, че прозорецът не е украсена. За да направите прозорец undecorated, трябва да се обадите setUndecorated (вярно) метод. Известно време се изисква също да се промени формата на прозорец UI. За да го изпълни, Трябва да се обадим setShape метод в рамките на componentResized метод. Тя ще преизчисли форма, когато на прозореца се преоразмерява.

Обратно земята: В Java UI, подкрепа за прозорец полупрозрачност и форма беше дълго време търсенето за Swing / AWT компоненти. За родния развитие достъп до тези имоти са на разположение от дълго време назад. Но това не беше достъпна за основни компоненти джава. В java6 напред, подкрепа за прозрачността и форма на прозорец е наличен. Дори на пиксел ниво транслуценция е също така поддържа в Java7.

Тип на подкрепа за прозрачността и прозрачност: Ява 7 поддържа следните три вида подкрепа.

TRANSLUCENT: В тази функция на прозореца може да има различни цветове, но с една и съща степен на непрозрачност. Така алфа стойност е един и същ за всички пиксела. Този ефект е подходящ за изчезне от прозореца и след това постепенно намалява и увеличава алфа стойност.

PERPIXEL_TRANSLUCENT: Това свойство поддържа различни стойности на алфа в самия прозорец. Това се използва за плавно избрания регион на прозореца.

PERPIXEL_TRANSPARENT: Това свойство поддържа различни форми на Windows, отколкото традиционните правоъгълник. Ако на пиксел прозрачност се поддържа след това различни форми като кръг, триъгълника могат да бъдат създадени.

Преди да използвате някоя от горните свойства трябва да се тества подкрепата при лежи на операционната система. Тестът може да се направи с помощта на метода 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() {

супер(“Translucent правоъгълна рамка”);

//Определете оформление

setLayout(нов GridBagLayout());

//Създаване на текстовото поле

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

txtArea.setBackground(Цвят.CYAN);

добави(txtArea);

//Обадете се, за да забраните декорация

setUndecorated(вярно);

 

//Обадете setShape да преоразмерите форма, когато widnow се преоразмерява

addComponentListener(нов ComponentAdapter() {

@ Override

публичен анулира componentResized(ComponentEvent и) {

setShape(нов Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//Направи прозореца 85% прозрачен

setOpacity(0.85F);

//Определете други параметри

setLocationRelativeTo(нула);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(вярно);

}

публичен статичен анулира основен(Низ[] опцията) {

//Създаване на графики среда

Младежки Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Проверете дали OS подкрепя Полупрозрачност

ако (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS подкрепя прозрачността”);

нов TransRecFrame();

}

}

}

Удобства в подкрепа на прозрачността и форма: В Java7 Там са основно три функции, налични в подкрепа на прозрачността и формата на прозореца.

  • Пълен прозорец полупрозрачност: При този подход пълно прозорец е полупрозрачен.
  • Per пиксел полупрозрачност: При този подход част на прозореца е полупрозрачен
  • Оформени прозорци: Направете различни форми прозорци като овални, кръг, правоъгълна и т.н..

Per пиксел полупрозрачност:

Ние вече сме свидетели как да се направи пълен полупрозрачен прозорец в предишния пример. Сега ще разгледаме втората част от вземане на набор от пиксели полупрозрачни с помощта им цвят на фона. Има някои ограничения за прилагане на този сценарий. Прозорецът не трябва да е на цял екран и системата трябва да поддържа пиксел полупрозрачност ниво. Останалата част от процедурата е подобен на горния пример.

В следващия пример ще видим как пиксел полупрозрачност се помещава в кадър.

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

добави(нов Pixel Panel(255 – аз * 12));

}

//Задайте фон и други свойства

setBackground(нов Цвят(0, 0, 0, 0));

setLocationRelativeTo(нула);

setVisible(вярно);

}

публичен статичен анулира основен(Низ[] опцията) {

Младежки Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

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

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

Система.навън.println(“OS подкрепя прозрачността”);

нов PixelTranslucency();

}

} частен клас Pixel Panel разширява JPanel {

частен Pixel Panel(Int pixl) {

супер();

setBackground(нов Цвят(0, 0, 255, pixl));

}

}

}

Оформени Windows:

Сега ще говорим за друга важна функция се поддържа от Java7.The форма прозореца поддържа всички видове форми Каквото и да е изискване на потребителя. Тази функция ви помага да създавате всякакви форми като кръг, триъгълник, полигон или всяка възможна сложна форма. The setShape метод на прозореца класа е на разположение за създаване на имота. Но пак не трябва да забравяме, че режим на цял екран да не се разрешава и на операционната система поддържа полупрозрачност.

Следващият пример показва използването на образна прозорец.

Listing3: Пробата код показва използването на образна прозорец.

внос javax.swing.*;

внос java.awt. *;

внос java.awt.geom.Ellipse2D;

внос java.awt.geom.GeneralPath;

публичен клас JavaShapedWindow разширява JFrame {

публичен JavaShapedWindow() {

супер(“Определете форма Window”);

//Определете undecorated OFF, за да получите ефект

setUndecorated(вярно);

//Определете размера

setSize(нов Измерение(250, 250));

//Определете полигон имоти

Polygon полигон = нов Полигон();

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(вярно);

}

публичен статичен анулира основен(Низ[] опцията) {

Младежки Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

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

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

Система.навън.println(“OS подкрепя прозрачността”);

нов JavaShapedWindow();

}

}

}

Можем също така да приложи комбинация от две функции, като прозорец полупрозрачност и форма. За прилагането на тази, наричаме метод setOpacity си маса. Прозорецът резултат ще покаже на комбинирания ефект. Но ние трябва да помним, операционната система трябва да поддържа ниво пиксел прозрачност и прозрачност пиксел.

Заключение:

В тази статия ние сме обхванати някои нови функции в java7.The полупрозрачност и оформени функции прозорците са наистина интересни и направи джава UI компоненти, по-гъвкава. Но в същото време ние трябва да помним, че операционната система трябва да поддържа всички тези свойства. В противен случай ефектът няма да се вижда. Така в самото заявление ние проверите поддръжката OS и след прилагане на сила. Най-новата функция на Java позволява на разработчиците да създават различни видове ефект върху страната UI. Както всички знаем, че външния вид е важен аспект на всяка UI базирано приложение. Така че разработчик вече е снабден с инструменти, за да направите потребителския интерфейс по-приятно и привлекателно.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share