what is java awt
Αυτό το σεμινάριο Java AWT εξηγεί τι είναι το Abstract Window Toolkit στην Java και συναφείς έννοιες όπως AWT Color, Point, Graphics, AWT vs Swing, κλπ:
Γνωρίσαμε τους βασικούς όρους GUI σε ένα από τα προηγούμενα σεμινάρια μας. Σε αυτό το σεμινάριο, θα συζητήσουμε ένα από τα παλαιότερα πλαίσια GUI στην Java που ονομάζεται 'AWT Framework'. Το AWT είναι η σύντομη φόρμα για το 'Abstract Window Toolkit'.
Το AWT είναι ένα API για τη δημιουργία εφαρμογών GUI στην Java. Είναι ένα πλαίσιο που εξαρτάται από την πλατφόρμα, δηλαδή τα στοιχεία GUI που ανήκουν στο AWT δεν είναι τα ίδια σε όλες τις πλατφόρμες. Σύμφωνα με την εγγενή εμφάνιση και αίσθηση της πλατφόρμας, η εμφάνιση και η αίσθηση των στοιχείων AWT αλλάζουν επίσης.
=> Ελέγξτε ΟΛΑ τα Εκπαιδευτικά Java εδώ.
Τι θα μάθετε:
JAVA AWT (Περίληψη εργαλειοθήκης παραθύρου)
Το Java AWT δημιουργεί στοιχεία καλώντας τις υπορουτίνες των εγγενών πλατφορμών. Ως εκ τούτου, μια εφαρμογή AWT GUI θα έχει την εμφάνιση και την αίσθηση του λειτουργικού συστήματος Windows ενώ εκτελείται σε Windows και σε Mac OS εμφάνιση και αίσθηση όταν εκτελείται σε Mac και ούτω καθεξής. Αυτό εξηγεί την εξάρτηση από την πλατφόρμα των εφαρμογών Abstract Window Toolkit.
Λόγω της εξάρτησης από την πλατφόρμα και ενός είδους βαρέων βαρών των συστατικών του, σπάνια χρησιμοποιείται σε εφαρμογές Java αυτές τις μέρες. Εκτός αυτού, υπάρχουν επίσης νεότερα πλαίσια όπως το Swing που είναι ελαφριά και ανεξάρτητα από την πλατφόρμα.
Το Swing έχει πιο ευέλικτα και ισχυρά εξαρτήματα σε σύγκριση με το AWT. Το Swing παρέχει στοιχεία παρόμοια με το Abstract Window Toolkit και διαθέτει επίσης πιο προηγμένα εξαρτήματα όπως δέντρα, πίνακες με καρτέλες κ.λπ.
Αλλά ένα πράγμα που πρέπει να σημειωθεί εδώ είναι ότι το Πλαίσιο Java Swing βασίζεται στο AWT. Με άλλα λόγια, το Swing είναι ένα βελτιωμένο API και επεκτείνει το πλαίσιο Abstract Window Toolkit. Επομένως, πριν προχωρήσουμε σε μαθήματα Swing, ας ρίξουμε μια επισκόπηση αυτού του πλαισίου.
Ιεραρχία και στοιχεία AWT
Ας δούμε τώρα πώς φαίνεται η ιεραρχία του Abstract Window Toolkit στην Java.
Δίνεται παρακάτω το διάγραμμα της ιεραρχίας AWT στην Java.
Όπως φαίνεται στο παραπάνω σχήμα, το συστατικό ρίζας AWT «Component» εκτείνεται από την κατηγορία «Object». Η κλάση συστατικών είναι ο γονέας των άλλων στοιχείων, όπως ετικέτα, κουμπί, λίστα, πλαίσιο ελέγχου, επιλογή, κοντέινερ κ.λπ.
Ένα δοχείο χωρίζεται περαιτέρω σε πάνελ και παράθυρα. Μια κλάση Applet προέρχεται από το Panel ενώ το πλαίσιο και το Dialog προέρχονται από το στοιχείο Window.
Τώρα ας συζητήσουμε εν συντομία αυτά τα στοιχεία.
Κατηγορία συστατικών
Η κλάση Component είναι η ρίζα της ιεραρχίας. Το Component είναι μια αφηρημένη τάξη και είναι υπεύθυνη για τα τρέχοντα χρώματα φόντου και προσκηνίου καθώς και για την τρέχουσα γραμματοσειρά κειμένου.
Η κλάση συστατικών ενσωματώνει τις ιδιότητες και τις ιδιότητες του οπτικού στοιχείου.
Δοχείο
Τα στοιχεία του κοντέινερ AWT μπορούν να περιέχουν άλλα στοιχεία όπως κείμενο, ετικέτες, κουμπιά, πίνακες, λίστες κ.λπ. Το κοντέινερ διατηρεί μια καρτέλα σε άλλα στοιχεία που προστίθενται στο GUI.
Πίνακας
Ο πίνακας είναι μια υποκατηγορία της κλάσης Container. Ο πίνακας είναι συγκεκριμένη κατηγορία και δεν περιέχει τον τίτλο, το περίγραμμα ή τη γραμμή μενού. Είναι ένα δοχείο για τη συγκράτηση των άλλων στοιχείων. Μπορεί να υπάρχουν περισσότερα από ένα πάνελ σε ένα πλαίσιο.
Τάξη παραθύρων
Η τάξη των Windows είναι ένα παράθυρο στο ανώτερο επίπεδο και μπορούμε να χρησιμοποιήσουμε πλαίσια ή διαλόγους για να δημιουργήσουμε ένα παράθυρο. Ένα παράθυρο δεν έχει περιθώρια ή γραμμές μενού.
Πλαίσιο
Το πλαίσιο προέρχεται από την κατηγορία Window και μπορεί να αλλάξει το μέγεθός του. Ένα πλαίσιο μπορεί να περιέχει διάφορα στοιχεία όπως κουμπί, ετικέτες, πεδία, γραμμή τίτλου κ.λπ. Το πλαίσιο χρησιμοποιείται στις περισσότερες από τις εφαρμογές του Abstract Window Toolkit.
c ++ μετατρέψτε char σε int
Ένα πλαίσιο μπορεί να δημιουργηθεί με δύο τρόπους:
# 1) Χρησιμοποιώντας το αντικείμενο κλάσης πλαισίου
Εδώ, δημιουργούμε ένα αντικείμενο κλάσης πλαισίου με την παρουσίαση της κλάσης πλαισίου.
Ένα παράδειγμα προγραμματισμού δίνεται παρακάτω.
import java.awt.*; class FrameButton{ FrameButton (){ Frame f=new Frame(); Button b=new Button('CLICK_ME'); b.setBounds(30,50,80,30); f.add(b); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args()){ FrameButton f=new FrameButton (); } }
Παραγωγή:
# 2) Με την επέκταση της κατηγορίας Frame
Εδώ δημιουργούμε μια κλάση που επεκτείνει την κλάση πλαισίου και στη συνέχεια δημιουργούμε στοιχεία του πλαισίου στον κατασκευαστή της.
Αυτό φαίνεται στο παρακάτω πρόγραμμα.
import java.awt.*; class AWTButton extends Frame{ AWTButton (){ Button b=new Button('AWTButton'); b.setBounds(30,100,80,30);// setting button position add(b);//adding button into frame setSize(300,300);//frame size 300 width and 300 height setLayout(null);//no layout manager setVisible(true);//now frame will be visible, by default not visible } public static void main(String args()){ AWTButton f=new AWTButton (); } }
Παραγωγή:
Κατηγορία χρωμάτων AWT
Η έξοδος AWT που δείξαμε παραπάνω είχε προεπιλεγμένα χρώματα για φόντο και προσκήνιο. Το Abstract Window Toolkit παρέχει μια κλάση χρωμάτων που χρησιμοποιείται για τη δημιουργία και ρύθμιση του χρώματος σε στοιχεία. Μπορούμε επίσης να ορίσουμε τα χρώματα σε στοιχεία χρησιμοποιώντας ένα πλαίσιο μέσω ιδιοτήτων συστατικών.
Η κατηγορία χρωμάτων μας επιτρέπει να το κάνουμε μέσω προγραμματισμού. Για το σκοπό αυτό, η κλάση χρωμάτων χρησιμοποιεί το μοντέλο χρώματος RGBA (RGBA = RED, GREEN, BLUE, ALPHA) ή HSB (HSB = HUE, SATURATION, BRIComponents).
Δεν θα αναφερθούμε στις λεπτομέρειες αυτής της τάξης, καθώς είναι πέρα από το πεδίο αυτού του σεμιναρίου.
Ο παρακάτω πίνακας παραθέτει τις διάφορες μεθόδους που παρέχονται από την κλάση Χρώμα.
ταξινόμηση εντολής στο linux με παραδείγματα
Κατασκευαστής / Μέθοδοι | Περιγραφή |
---|---|
getBlue () | Επιστρέφει το στοιχείο μπλε χρώματος στην περιοχή 0-255. |
φωτεινότερος() | Δημιουργήστε μια πιο φωτεινή έκδοση του τρέχοντος χρώματος. |
createContext (ColorModel cm, ορθογώνιο r, ορθογώνιο2D r2d, AffineTransform x, RenderingHints h) | Επιστρέφει ένα νέο PaintContext. |
πιο σκούρο () | Δημιουργεί μια πιο σκοτεινή έκδοση του τρέχοντος χρώματος. |
αποκωδικοποίηση (String nm) | Επιστρέφει ένα καθορισμένο αδιαφανές χρώμα μετατρέποντας τη συμβολοσειρά σε ακέραιο. |
ισούται με (αντικείμενο obj) | Ελέγχει εάν το δεδομένο χρωματικό αντικείμενο είναι ίσο με το τρέχον αντικείμενο. |
getAlpha () | Επιστρέφει την τιμή άλφα του χρώματος που κυμαίνεται από 0-255. |
getColor (συμβολοσειρά nm) | Επιστρέφει ένα χρώμα από τις ιδιότητες του συστήματος. |
getColor (String nm, Χρώμα v) | |
getColor (συμβολοσειρά nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Επιστρέφει έναν πίνακα τύπου float που περιέχει τα χρωματικά στοιχεία από το καθορισμένο ColorSpace. |
getColorComponents (float () compArray) | Επιστρέφει έναν πίνακα float τύπου που περιέχει τα χρωματικά στοιχεία από το ColorSpace του χρώματος. |
getColorSpace () | επιστρέφει το ColorSpace του τρέχοντος χρώματος. |
getGreen () | Επιστρέφει το στοιχείο πράσινου χρώματος στην περιοχή 0-255 στον προεπιλεγμένο χώρο sRGB. |
getRed () | Επιστρέφει το στοιχείο κόκκινου χρώματος στην περιοχή 0-255 στον προεπιλεγμένο χώρο sRGB. |
getRGB () | Επιστρέφει την τιμή RGB του τρέχοντος χρώματος στο προεπιλεγμένο sRGB ColorModel. |
getHSBColor (float h, float s, float b) | Δημιουργεί ένα αντικείμενο χρώματος χρησιμοποιώντας το μοντέλο χρώματος HSB με καθορισμένες τιμές. |
getTransparency () | επιστρέφει την τιμή διαφάνειας για αυτό το χρώμα. |
hashCode () | Επιστρέφει τον κωδικό κατακερματισμού για αυτό το χρώμα. |
HSBtoRGB (float h, float s, float b) | Μετατρέψτε το δεδομένο HSB σε τιμή RGB |
RGBtoHSB (int r, int g, int b, float () hsbvals) | μετατρέπει τις δεδομένες τιμές RGB σε τιμές HSB. |
Σημείο AWT στην Ιάβα
Η κλάση Point χρησιμοποιείται για να υποδείξει μια τοποθεσία. Η τοποθεσία προέρχεται από ένα δισδιάστατο σύστημα συντεταγμένων.
Μέθοδοι | Περιγραφή |
---|---|
toString () | Επιστρέψτε την παράσταση συμβολοσειράς του σημείου. |
ισούται με (αντικείμενο) | Ελέγξτε εάν δύο βαθμοί είναι ίσοι. |
getLocation () | Επιστροφή θέση του τρέχοντος σημείου. |
hashCode () | Επιστρέφει τον κωδικό κατακερματισμού για το τρέχον σημείο. |
μετακίνηση (int, int) | Μετακινεί το δεδομένο σημείο στη δεδομένη θέση στο σύστημα συντεταγμένων (x, y). |
setLocation (int, int) | Αλλάζει τη θέση του σημείου στην καθορισμένη τοποθεσία. |
setLocation (Σημείο) | Ορίζει τη θέση του σημείου στη δεδομένη θέση. |
μετάφραση (int, int) | Μεταφράστε το τρέχον σημείο σε σημείο x + dx, y + dy. |
Κατηγορία γραφικών AWT
Όλα τα περιβάλλοντα γραφικών στο Abstract Window Toolkit για την σχεδίαση στοιχείων σε μια εφαρμογή προέρχονται από την κατηγορία Graphics. Ένα αντικείμενο κλάσης γραφικών περιέχει τις πληροφορίες κατάστασης που απαιτούνται για την απόδοση λειτουργιών.
Οι πληροφορίες κατάστασης συνήθως περιέχουν:
- Ποιο συστατικό πρόκειται να σχεδιαστεί;
- Συντεταγμένες απόδοσης και αποκοπής.
- Το τρέχον χρώμα, γραμματοσειρά και κλιπ.
- Η τρέχουσα λειτουργία στο λογικό pixel.
- Το τρέχον χρώμα XOR
Η γενική δήλωση της κατηγορίας γραφικών έχει ως εξής:
public abstract class Graphics extends Object
Λειτουργία χωρίς κεφαλή AWT και εξαίρεση χωρίς κεφαλή
Όταν έχουμε την απαίτηση να δουλεύουμε με την εφαρμογή που βασίζεται σε γραφικά, αλλά χωρίς πραγματικό πληκτρολόγιο, ποντίκι ή ακόμη και οθόνη, τότε ονομάζεται περιβάλλον 'χωρίς κεφάλι'.
Η JVM πρέπει να γνωρίζει ένα τέτοιο περιβάλλον χωρίς κεφάλι. Μπορούμε επίσης να ρυθμίσουμε το ακέφαλο περιβάλλον χρησιμοποιώντας το Abstract Window Toolkit.
Υπάρχουν ορισμένοι τρόποι για να το κάνετε αυτό όπως φαίνεται παρακάτω:
# 1) Ορίστε την ιδιότητα συστήματος 'java.awt.headless' σε πραγματική χρησιμοποιώντας τον κώδικα προγραμματισμού.
#δύο) Χρησιμοποιήστε τη γραμμή εντολών για να ορίσετε την ακόλουθη ιδιότητα λειτουργίας χωρίς κεφαλή:
java -Djava.awt.headless = true
# 3) Προσθέστε το '-Djava.awt.headless = true' στη μεταβλητή περιβάλλοντος που ονομάζεται 'JAVA_OPTS' χρησιμοποιώντας ένα σενάριο εκκίνησης διακομιστή.
Όταν το περιβάλλον είναι ακέφαλο και έχουμε έναν κωδικό που εξαρτάται από την οθόνη, το πληκτρολόγιο ή το ποντίκι, και όταν αυτός ο κώδικας εκτελείται σε περιβάλλον χωρίς κεφάλι, τότε εμφανίζεται η εξαίρεση 'HeadlessException'.
Η γενική δήλωση του HeadlessException δίνεται παρακάτω:
public class HeadlessException extends UnsupportedOperationException
Πηγαίνουμε για τη λειτουργία χωρίς κεφαλή σε εφαρμογές που απαιτούν, για παράδειγμα, σύνδεση εικόνας με εικόνα. Για παράδειγμα, αν θέλουμε να αλλάξουμε την εικόνα με κάθε είσοδο ή κάθε φορά που η σελίδα ανανεώνεται, τότε σε τέτοιες περιπτώσεις, θα φορτώσουμε την εικόνα και δεν χρειαζόμαστε πληκτρολόγιο, ποντίκι κ.λπ.
Java AWT Vs Swing
Ας δούμε τώρα μερικές από τις διαφορές μεταξύ Java AWT και Swing.
ΑΝΤ | Κούνια |
---|---|
Το AWT λειτουργεί με 21 peer ή widget του λειτουργικού συστήματος που αντιστοιχούν σε κάθε στοιχείο. | Το Swing λειτουργεί με ένα μόνο peer που είναι το Window Object. Όλα τα άλλα στοιχεία σχεδιάζονται από το Swing μέσα στο αντικείμενο Window. |
Το AWT σημαίνει 'Abstract Windows Toolkit'. | Το Swing προέρχεται από Java Foundation Classes (JFC). |
Τα εξαρτήματα AWT είναι βαρέων βαρών, καθώς το AWT πραγματοποιεί απευθείας κλήσεις υπορουτίνας σε υπορουτίνες του λειτουργικού συστήματος. | Τα εξαρτήματα ταλάντευσης γράφονται πάνω από το AWT και ως εκ τούτου τα εξαρτήματα είναι ελαφριά. |
Τα στοιχεία AWT αποτελούν μέρος του πακέτου java.awt. | Τα εξαρτήματα Swing αποτελούν μέρος του πακέτου javax.swing. |
Το AWT εξαρτάται από την πλατφόρμα. | Τα στοιχεία Swing είναι γραμμένα σε Java και είναι ανεξάρτητα από την πλατφόρμα. |
Το AWT δεν έχει την εμφάνιση και την αίσθηση. Προσαρμόζει την εμφάνιση και την αίσθηση της πλατφόρμας στην οποία λειτουργεί. | Η Swing προσφέρει μια διαφορετική εμφάνιση και αίσθηση από μόνη της. |
Το AWT έχει μόνο βασικές δυνατότητες και δεν υποστηρίζει προηγμένες λειτουργίες όπως πίνακας, πίνακες με καρτέλες κ.λπ. | Το Swing παρέχει προηγμένες δυνατότητες όπως JTabbed panel, JTable κ.λπ. |
Το AWT είναι τόσο καλό όσο ένα λεπτό στρώμα τάξεων που βρίσκεται πάνω από το λειτουργικό σύστημα που το καθιστά εξαρτώμενο από την πλατφόρμα. | Το Swing είναι μεγαλύτερο και περιέχει επίσης πλούσια λειτουργικότητα. |
Το AWT μας κάνει να γράφουμε πολλά πράγματα. | Το Swing διαθέτει τα περισσότερα χαρακτηριστικά ενσωματωμένα. |
Συχνές Ερωτήσεις
Q # 1) Τι είναι το AWT στην Java;
Απάντηση: Το AWT στην Java είναι επίσης γνωστό ως 'Abstract Window Toolkit' το οποίο είναι ένα πλαίσιο γραφικών διεπαφών χρήστη που εξαρτάται από την πλατφόρμα και προηγείται του πλαισίου Swing. Είναι μέρος του τυπικού API GUI Java, Java Foundation Classes ή JFC.
Ε # 2) Χρησιμοποιείται ακόμα το Java AWT;
Απάντηση: Είναι σχεδόν απαρχαιωμένο στην Java χωρίς ορισμένα εξαρτήματα που εξακολουθούν να χρησιμοποιούνται. Επίσης, εξακολουθούν να υπάρχουν ορισμένες παλιές εφαρμογές ή προγράμματα σε παλαιότερες πλατφόρμες που χρησιμοποιούν AWT.
Q # 3) Τι είναι το AWT και το Swing στην Java;
Απάντηση: Το Abstract Window toolkit είναι ένα API που εξαρτάται από την πλατφόρμα για την ανάπτυξη εφαρμογών GUI στην Java. Το Swing από την άλλη πλευρά είναι ένα API για ανάπτυξη GUI και προέρχεται από Java Foundation Classes (JFC). Τα εξαρτήματα AWT είναι βαριά, ενώ τα εξαρτήματα Swing είναι ελαφριά.
Q # 4) Ποιο είναι το πλαίσιο στο Java AWT;
Απάντηση: Ένα πλαίσιο μπορεί να οριστεί ως το παράθυρο συστατικού ανώτερου επιπέδου που έχει τίτλο και περίγραμμα. Το πλαίσιο έχει την «διάταξη συνόρων» ως την προεπιλεγμένη του διάταξη. Τα πλαίσια δημιουργούν επίσης συμβάντα παραθύρων όπως Κλείσιμο, άνοιγμα, κλείσιμο, ενεργοποίηση, απενεργοποίηση κ.λπ.
Q # 5) Τι είναι η εισαγωγή Java AWT;
Απάντηση: Εισαγωγή Java AWT (εισαγωγή java.awt. *) Υποδεικνύει ότι χρειαζόμαστε τη λειτουργικότητα του AWT API στο πρόγραμμά μας, ώστε να μπορούμε να χρησιμοποιήσουμε τα στοιχεία του όπως TextFields, Buttons, Labels, List κ.λπ.
συμπέρασμα
Σε αυτό το σεμινάριο, συζητήσαμε την επισκόπηση του Abstract Window Toolkit, ως API που εξαρτάται από την πλατφόρμα για ανάπτυξη GUI στην Java. Είναι σχεδόν ξεπερασμένο στην Java και αντικαθίσταται από τα άλλα API όπως Swings και JavaFX.
Δεν έχουμε αναφερθεί στις λεπτομέρειες όλων των στοιχείων του Abstract Window Toolkit, δεδομένου ότι σπάνια χρησιμοποιούνται τώρα. Ως εκ τούτου, συζητήσαμε μόνο στοιχεία όπως Frames, Color κ.λπ. και τη λειτουργία headless που έχει ρυθμιστεί χρησιμοποιώντας AWT.
Στο επόμενο σεμινάριο, θα ξεκινήσουμε με Java Swing tutorials και θα τα συζητήσουμε λεπτομερώς, καθώς οι περισσότερες εφαρμογές Java χρησιμοποιούν σήμερα Swing για ανάπτυξη GUI.
=> Παρακολουθήστε εδώ την απλή εκπαίδευση Java.
Συνιστώμενη ανάγνωση
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Βασικά στοιχεία Java: Java Syntax, Java Class και Core Java Concepts
- Java Integer και Java BigInteger Class με παραδείγματα
- Τύποι μαθημάτων σε Java: Περίληψη, Σκυρόδεμα, Τελικό, Στατικό
- Ανάπτυξη Java: Δημιουργία και εκτέλεση αρχείου Java JAR
- Εκπαιδευτικό μάθημα κλάσης Java Scanner με παραδείγματα
- Ιδιωτικοί, αφηρημένοι, συστοιχίες και κατασκευαστές χορδών στην Java
- Αντικείμενο Java Class Vs - Πώς να χρησιμοποιήσετε την κλάση και το αντικείμενο στην Java