Як створити прозорий і форми вікна в 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