כיצד ליצור חלונות שקופים ומעוצבים בג'אווה?

סקירה: במאמר זה נדון על השקיפות וחלונות בצורת שונות בג'אווה. ב-Java 7 תנופה תומכת בתכונה זו ומה שהופכת את רכיבי ממשק משתמש נדנדה יותר גמישים וידידותי למשתמש.

מבוא: בחלק היישום, חלון שקוף הוא דרישה לתמיכה בפונקציות שלה. עכשיו ב-Java, יכולה להיות מיושמת בשקיפות. חלון שקוף נוצר על ידי שינוי האטימות שלה על ידי יישום שיטה הנקראת setOpacity על רכיב JFrame. אבל עלינו להבין שחלון שקוף אפשרי רק אם מערכת ההפעלה הבסיסית תומכת בכך. ואנחנו גם צריכים לוודא שהחלון לא מעוצב. כדי להפוך את חלון undecorated, אתה צריך להתקשר setUndecorated (נכון) שיטה. כמה זמן זה נדרש גם לשנות את צורתו של ממשק משתמש חלון. כדי ליישם אותו, אנחנו צריכים לקרוא לשיטת setShape בתוך שיטת componentResized. זה יהיה לחשב מחדש את הצורה כאשר החלון מקבל גודל.

חזור קרקע: ממשק המשתמש ב-Java, תמיכה בשקיפות ובצורת החלון הייתה ביקוש זמן רב לרכיבי Swing / AWT. לגישת פיתוח יליד מאפיינים אלה זמינים מזמן רב לאחור. אבל זה לא היה נגיש לרכיבי ליבת java. בJava6 ואילך, תמיכה בשקיפות וחלון בצורה זמין. גם שקיפות ברמת פיקסל להוא תומך גם בJava7.

סוג של תמיכה בשקיפות ושקיפות: ג'אווה 7 תומך בשלושת סוגים הבאים של תמיכה.

שקוף: בתכונה זו לחלון יכול להיות בצבעים שונים, אבל עם אותה הרמה של אטימות. אז ערך אלפא הוא זהה עבור כל הפיקסלים. השפעה זו מתאימה ללדהות את חלון ולאחר מכן יורדת בהדרגה ומגדילה את ערך אלפא.

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

סופר(“מסגרת מלבנית שקופה”);

//הגדרת פריסה

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.שקוף)) {

שיטה(“מערכת הפעלה תומכת בשקיפות”);

חדש TransRecFrame();

}

}

}

תכונות לתמיכה בשקיפות ובצורה: בJava7 יש בעיקר שלוש תכונות זמינות כדי לתמוך בשקיפות ובצורה של חלון.

  • שקיפות חלון מלאה: בגישה זו הוא חלון שקוף מלא.
  • לשקיפות פיקסל: בגישה זו חלק מהחלון הוא שקוף
  • חלונות בצורת: הפוך את חלונות בצורת שונות כמו ovale, המעגל, וכו 'מלבני.

לשקיפות פיקסל:

כבר ראינו איך לעשות שקופה חלון מלא בדוגמא הקודמת. עכשיו נדון בחלק השני של מה שהופך את קבוצה של פיקסלים שקופים על ידי שימוש בצבע הרקע שלהם. ישנן מספר מגבלות למימוש תרחיש זה. החלון לא צריך להיות במסך מלא ושקיפות ברמת פיקסל המערכת חייבת לתמוך. שאר ההליך דומה לדוגמה לעיל.

בדוגמא שלהלן אנו רואים כיצד רמת שקיפות פיקסל מוגדרת במסגרת.

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 אני = 0; אני < 16; אני ){

להוסיף(חדש פיקסל לוח(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();

//בדקו תמיכה במערכת הפעלה לנכס זה

אם (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

מערכת.החוצה.println(“מערכת הפעלה תומכת בשקיפות”);

חדש JavaShapedWindow();

}

}

}

אנחנו יכולים גם ליישם את שילוב של שתי תכונות כמו שקיפות וצורת חלון. כדי ליישם את זה, קורא לשיטת setOpacity למסגרת שלך. חלון התוצאה יציג את ההשפעה המשולבת. אבל עלינו לזכור את מערכת ההפעלה הבסיסית שקיפות ברמת שקיפות ברמת פיקסל פיקסל וחייבת לתמוך.

מסקנה:

במאמר זה אנו מכסים את חלק מהתכונות חדשות בשקיפות java7.The ותכונות חלון בצורת ממש מעניינות ולהפוך את רכיבי ממשק משתמש גמישים יותר java. אבל באותו הזמן עלינו לזכור כי מערכת ההפעלה הבסיסית צריכה לתמוך בכל התכונות האלה. אחרת האפקט לא יהיה גלוי. אז ביישום עצמו אנחנו בודק את התמיכה במערכת ההפעלה ולאחר מכן ליישם את האפקט. התכונה האחרונה של ג'אווה מאפשרת למפתחים ליצור סוגים שונים של השפעה בצד ממשק המשתמש. כפי שכולנו יודעים שמראה ותחושה הוא היבט חשוב של כל יישום מבוסס ממשק משתמש. אז המפתח הוא החברה מצויד בכלים כדי להפוך את הממשק יותר נעים ואטרקטיבי.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share