Πώς να δημιουργήσετε διαφανές και παράθυρα σε σχήμα σε Java?

Επισκόπηση: Σε αυτό το άρθρο θα συζητήσουμε σχετικά με τη διαφάνεια και διαφορετικό σχήμα παράθυρα σε Java. Στην java 7 swing υποστηρίζει αυτή τη λειτουργία και την κατασκευή συστατικών στοιχείων UI swing πιο ευέλικτο και φιλικό προς το χρήστη.

Εισαγωγή: Σε κάποια εφαρμογή, διαφανές παράθυρο είναι μια απαίτηση για να υποστηρίξει τη λειτουργία της. Τώρα σε Java, διαφάνεια μπορεί να εφαρμοστεί. Ένα διαφανές παράθυρο που έχει δημιουργηθεί με την αλλαγή της αδιαφάνειας εφαρμόζοντας μια μέθοδο που ονομάζεται setOpacity σε ένα JFrame συνιστώσα. Αλλά πρέπει να καταλάβουμε ότι ένα ημιδιαφανές παράθυρο είναι δυνατή μόνο εάν το υποκείμενο λειτουργικό σύστημα που υποστηρίζει. Και πρέπει επίσης να βεβαιωθείτε ότι το παράθυρο δεν είναι διακοσμημένο. Για να κάνετε ένα παράθυρο αδιακόσμητα, θα πρέπει να καλέσετε setUndecorated (αληθής) μέθοδος. Κάποια στιγμή θα είναι επίσης υποχρεωμένος να αλλάξει το σχήμα του UI παράθυρο. Για να το εφαρμόσει, θα πρέπει να καλέσετε setShape μέθοδο μέσα στην componentResized μέθοδο. Θα υπολογίσει εκ νέου το σχήμα όταν το παράθυρο αλλάξει μέγεθος.

Πίσω έδαφος: Στην java UI, υποστήριξη για το παράθυρο διαύγεια και σχήμα ήταν μια μεγάλη στιγμή η ζήτηση για Swing / AWT συστατικά. Για την εγγενή πρόσβαση ανάπτυξης για αυτές τις ιδιότητες είναι διαθέσιμα από πολύ καιρό πίσω. Αλλά δεν ήταν προσιτά σε βασικά συστατικά java. Το java6 και μετά, στήριξη για την διαύγεια και σχήμα παράθυρο είναι διαθέσιμο. Ακόμη και ανά pixel διαύγεια επίπεδο είναι, επίσης, υποστηρίζει Java7.

Είδος στήριξης για διαύγεια και διαφάνεια: Ιάβα 7 υποστηρίζει τις ακόλουθες τρεις είδος της υποστήριξης.

TRANSLUCENT: Σε αυτό το χαρακτηριστικό το παράθυρο μπορεί να έχουν διαφορετικά χρώματα, αλλά με το ίδιο επίπεδο αδιαφάνειας. Έτσι, η τιμή άλφα είναι ίδια για όλα τα εικονοστοιχεία. Η επίδραση αυτή είναι κατάλληλη για εξασθενίσει μακριά ένα παράθυρο και στη συνέχεια σταδιακά μειώνεται και αυξάνει την τιμή άλφα.

PERPIXEL_TRANSLUCENT: Το ακίνητο υποστηρίζει διαφορετικές τιμές άλφα μέσα στο παράθυρο ίδια. Αυτό χρησιμοποιείται για να εξασθενίσει επιλεγμένη περιοχή του παραθύρου.

PERPIXEL_TRANSPARENT: Το ακίνητο υποστηρίζει διαφορετικά σχήματα των παραθύρων και όχι τις παραδοσιακές ορθογώνιο. Εάν ανά pixel διαφάνεια υποστηρίζεται στη συνέχεια διάφορα σχήματα, όπως κύκλο, τρίγωνο μπορεί να δημιουργηθεί.

Πριν χρησιμοποιήσετε οποιαδήποτε από τις ανωτέρω ιδιότητες πρέπει να δοκιμάσει την υποστήριξη που βρίσκεται κάτω από το λειτουργικό σύστημα. Η δοκιμή μπορεί να γίνει με τη χρήση μεθόδου isWindowTranslucencySupported ανήκει στην κατηγορία java.awt.GraphicsDevice. Παίρνει το είδος της διαφάνειας ως είσοδο και επιστρέφει true / false για να δείξει την υποστήριξη.

Ας ελέγχει ένα δείγμα κώδικα για την εφαρμογή της δυνατότητας διαύγεια. Σε αυτό το παράδειγμα, έχουμε δημιουργήσει ένα ορθογώνιο διαφανές παράθυρο σε μια περιοχή κειμένου. Πρώτα έχουμε απενεργοποιήσει τη λειτουργία διακόσμησης για να πάρει το αποτέλεσμα της διαφάνειας. Στη συνέχεια, έχουμε ελέγξει εάν το υποκείμενο λειτουργικό σύστημα που υποστηρίζει ή όχι. Αν υποστηρίζεται η επίδραση είναι ορατή στο παράθυρο πλαισίου.

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(Χρώμα.CYAN);

προσθήκη(txtArea);

//Κλήση για να απενεργοποιήσετε τη διακόσμηση

setUndecorated(αληθής);

 

//Καλέστε setShape να αλλάξετε το μέγεθος του σχήματος, όταν widnow αλλάζει μέγεθος

addComponentListener(νέος ComponentAdapter() {

@ Παράκαμψη

δημόσιο ακυρώσει componentResized(ComponentEvent και) {

setShape(νέος Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//Κάντε το παράθυρο 85% διαφανής

setOpacity(0.85f);

//Ρυθμίστε άλλες παραμέτρους

setLocationRelativeTo(μηδέν);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(αληθής);

}

δημόσιο στατικός ακυρώσει κύριος(Κορδόνι[] args) {

//Δημιουργήστε γραφικά περιβάλλον

Νεολαία Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Ελέγξτε αν το λειτουργικό υποστηρίζει Διαύγεια

αν (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS υποστηρίζει διαύγεια”);

νέος TransRecFrame();

}

}

}

Χαρακτηριστικά για την υποστήριξη διαύγεια και το σχήμα: Σε Java7 υπάρχουν κυρίως τρεις λειτουργίες που είναι διαθέσιμες για την υποστήριξη διαύγεια και το σχήμα ενός παραθύρου.

  • Πλήρης διαύγεια παράθυρο: Σε αυτή την προσέγγιση πλήρους παράθυρο είναι ημιδιαφανές.
  • Ανά διαύγεια pixel: Σε αυτή την προσέγγιση ένα μέρος του παραθύρου είναι ημιδιαφανές
  • Διαμορφωμένο παράθυρα: Κάντε διαφορετικού σχήματος παράθυρα σαν ovale, κύκλος, ορθογώνια κλπ..

Ανά διαύγεια pixel:

Έχουμε ήδη δει πώς να κάνει μια πλήρη ημιδιαφανές παράθυρο στο προηγούμενο παράδειγμα. Τώρα θα συζητήσουμε το δεύτερο μέρος του κάνοντας μια σειρά από pixels ημιδιαφανές, χρησιμοποιώντας το χρώμα του φόντου τους. Υπάρχουν ορισμένοι περιορισμοί στην υλοποίηση αυτού του σεναρίου. Το παράθυρο δεν θα πρέπει να είναι σε πλήρη οθόνη και το σύστημα πρέπει να υποστηρίζει pixel διαύγεια επίπεδο. Το υπόλοιπο της διαδικασίας είναι παρόμοιο με το παραπάνω παράδειγμα.

Στο παρακάτω παράδειγμα θα δούμε πώς pixel διαύγεια επίπεδο ορίζεται σε ένα πλαίσιο.

Listing2: Δείγμα που δείχνει το επίπεδο pixel υποστήριξη διαύγεια.

εισαγωγή javax.swing.*;

εισαγωγή java.awt. *;

εισαγωγή java.awt.event.ActionEvent;

εισαγωγή java.awt.event.ActionListener;

δημόσιο κατηγορία PixelTranslucency εκτείνεται JFrame {

δημόσιο PixelTranslucency() {

σούπερ(“Ορισμός pixel διαύγεια επίπεδο”);

//Ρυθμίστε το μέγεθος του JFrame

setSize(250, 250);

//Ορισμός lay out

getContentPane().setLayout(νέος GridLayout(6, 6));

//Πρόσκληση για ρύθμιση pixel

για(int i = 0; εγώ < 16; i ){

προσθήκη(νέος Panel Pixel(255 – εγώ * 12));

}

//Ορισμός φόντου και άλλες ιδιότητες

setBackground(νέος Χρώμα(0, 0, 0, 0));

setLocationRelativeTo(μηδέν);

setVisible(αληθής);

}

δημόσιο στατικός ακυρώσει κύριος(Κορδόνι[] args) {

Νεολαία Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Ελέγξτε αν το παράθυρο υποστηρίζει διαύγεια

αν (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Σύστημα.έξω.println(“OS υποστηρίζει διαύγεια”);

νέος PixelTranslucency();

}

} ιδιωτικός κατηγορία Panel Pixel εκτείνεται JPanel {

ιδιωτικός Panel Pixel(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() {

σούπερ(“Ορισμός σχήμα Παράθυρο”);

//Ορισμός αδιακόσμητα 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);

//Ρυθμίστε τη διάταξη box

getContentPane().setLayout(νέος BoxLayout(getContentPane(), BoxLayout.X_AXIS));

προσθήκη(Κουτί.createHorizontalGlue());

//Δημιουργία ετικετών και ορισμός ιδιοτήτων

JLabel newlabel = νέος JLabel(“Java σχήμα παράθυρο”);

newlabel.setForeground(Χρώμα.λευκό);

προσθήκη(newlabel);

προσθήκη(Κουτί.createHorizontalGlue());

//Ρυθμίστε το περιεχόμενο χρώμα του φόντου παράθυρο

getContentPane().setBackground(Χρώμα.κυανό);

//Ορίστε την τοποθεσία

setLocationRelativeTo(μηδέν);

setVisible(αληθής);

}

δημόσιο στατικός ακυρώσει κύριος(Κορδόνι[] args) {

Νεολαία Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Ελέγξτε την υποστήριξη OS για αυτό το ακίνητο

αν (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Σύστημα.έξω.println(“OS υποστηρίζει διαύγεια”);

νέος JavaShapedWindow();

}

}

}

Μπορούμε επίσης να εφαρμόσει ένα συνδυασμό των δύο χαρακτηριστικά, όπως το παράθυρο διαύγεια και σχήμα. Για την εφαρμογή της παρούσας, κλήση της μεθόδου setOpacity για να πλαισιώσει σας. Το παράθυρο αποτέλεσμα θα εμφανιστεί το συνδυασμένο αποτέλεσμα. Αλλά πρέπει να θυμόμαστε το υποκείμενο λειτουργικό σύστημα πρέπει να υποστηρίζει pixel διαύγεια επίπεδο και pixel επίπεδο διαφάνειας.

Συμπέρασμα:

Σε αυτό το άρθρο έχουμε καλύψει κάποια νέα χαρακτηριστικά σε java7.The διαύγεια και το σχήμα χαρακτηριστικά παραθύρων είναι πραγματικά ενδιαφέρον και να κάνουν java στοιχεία UI πιο ευέλικτη. Αλλά την ίδια στιγμή πρέπει να θυμόμαστε ότι το υποκείμενο λειτουργικό σύστημα θα πρέπει να υποστηρίζει όλες αυτές τις ιδιότητες. Διαφορετικά, το αποτέλεσμα δεν θα είναι ορατή. Έτσι, το ίδιο το δικόγραφο ελέγξουμε την υποστήριξη OS και στη συνέχεια να εφαρμόσουν το αποτέλεσμα. Το τελευταίο χαρακτηριστικό της Java επιτρέπει στους προγραμματιστές να δημιουργούν διαφορετικούς τύπους εφέ από την πλευρά UI. Όπως όλοι γνωρίζουμε ότι η εμφάνιση και αίσθηση είναι μια σημαντική πτυχή της κάθε UI based εφαρμογή. Έτσι, ο κύριος του έργου είναι πλέον εξοπλισμένο με τα εργαλεία για να κάνει το UI πιο ευχάριστο και ελκυστικό.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share