Όργανα

Το SWT περιέχει πολλές ενισχυμένες λειτουργίες, ωστόσο η βασική γνώση του πυρήνα του συστήματος - όργανα, διατάξεις, και συμβάντα - είναι το μόνο που χρειάζεται για την υλοποίηση χρήσιμων και ισχυρών εφαρμογών.

Δομή εφαρμογής οργάνου

Κατά τη συνεισφορά στοιχείων περιβάλλοντος χρήστη με χρήση επεκτάσεων πάγκου εργασίας πλατφόρμας, ο χειρισμός του μηχανισμού εκκίνησης του SWT γίνεται από τον πάγκο εργασίας αυτόματα.

Αν γράφετε από την αρχή μια εφαρμογή SWT εκτός του πάγκου εργασίας, πρέπει να κατανοήσετε περισσότερα για τη δομή εφαρμογής του SWT.

Μια συνηθισμένη αναξάρτητη εφαρμογή SWT έχει την ακόλουθη δομή:

Το ακόλουθο τμήμα κώδικα έχει προσαρμοστεί από την εφαρμογή org.eclipse.swt.examples.helloworld.HelloWorld2. Εφόσον η εφαρμογή εμφανίζει μόνο τη σειρά χαρακτήρων "Hello World," δε χρειάζεται να καταχωρηθεί για συμβάντα οργάνων.

   public static void main (String [] args) {
      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
      label.setText ("Hello_world");
      label.setBounds (shell.getClientArea ());
      shell.open ();
      while (!shell.isDisposed ()) {
         if (!display.readAndDispatch ()) display.sleep ();
      }
      display.dispose ();
   }

Παρουσίαση

Η διεπαφή Display αντιπροσωπεύει τη σύνδεση ανάμεσα στο SWT και το σύστημα GUI της υποκείμενης πλατφόρμας. Οι "Παρουσιάσεις" χρησιμοποιούνται κυρίως για τη διαχείριση του βρόχου συμβάντων πλατφόρμας και τον έλεγχο της επικοινωνίας ανάμεσα στο νήμα του περιβάλλοντος χρήστη και τα άλλα νήματα. (Ανατρέξτε στην ενότητα Θέματα δημιουργίας νημάτων για πελάτες για μια πλήρη ανάλυση θεμάτων δημιουργίας νημάτων σε περιβάλλον χρήστη.)

Για τις περισσότερες εφαρμογές μπορείτε να ακολουθήσετε το μοτίβο που χρησιμοποιείται παραπάνω. Πρέπει να δημιουργήσετε μια παρουσίαση πριν να δημιουργήσετε ένα παράθυρο και πρέπει να αποδεσμεύσετε την παρουσίαση όταν το κέλυφος είναι κλειστό. Δε χρειάζεται να σας απασχολεί ιδιαίτερα η παρουσίαση εκτός αν σχεδιάζετε μια εφαρμογή πολλαπλών νημάτων.

Κέλυφος

Το Shell είναι ένα "παράθυρο" του οποίου η διαχείριση γίνεται από τη λειτουργία διαχείρισης του παραθύρου πλατφόρμας λειτουργικού συστήματος. Τα κελύφη ανωτέρου επιπέδου είναι εκείνα που χρησιμοποιούνται ως θυγατρικό στοιχείο της παρουσίασης. Αυτά τα παράθυρα είναι εκείνα στα οποία οι χρήστες, κατά τη χρήση μιας εφαρμογής, πραγματοποιούν μετακίνηση, αλλαγή μεγέθους, ελαχιστοποίηση και μεγιστοποίηση. Τα δευτερεύοντα κελύφη είναι εκείνα που δημιουργούνται ως θυγατρικά στοιχεία ενός άλλου κελύφους. Αυτά τα παράθυρα χρησιμοποιούνται συνήθως ως παράθυρα διαλόγου ή άλλα προσωρινά παράθυρα που υπάρχουν μόνο στο περιβάλλον ενός άλλου παραθύρου.

Γονικά και θυγατρικά στοιχεία

Όλα τα όργανα που δεν αποτελούν κελύφη ανωτέρου επιπέδου πρέπει να έχουν ένα γονικό στοιχείο. Τα κελύφη ανωτέρου επιπέδου δεν έχουν γονικό στοιχείο, αλλά δημιουργούνται σε συνδυασμό με μια συγκεκριμένη Παρουσίαση. Η πρόσβαση σε αυτή την παρουσίαση γίνεται με τη μέθοδο getDisplay(). Όλα τα άλλα όργανα δημιουργούνται ως απόγονα στοιχεία (άμεσα ή έμμεσα) κελύφων ανωτέρου επιπέδου.

Τα σύνθετα όργανα είναι όργανα που μπορούν να έχουν θυγατρικά στοιχεία.

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

Bit Στυλ

Κάποιες ιδιότητες οργάνων πρέπει να ρυθμιστούν τη στιγμή της δημιουργίας του οργάνου και στη συνέχεια δε μπορούν να αλλάξουν. Για παράδειγμα, μια λίστα μπορεί να είναι απλή ή να έχει πολλαπλές επιλογές και μπορεί να έχει ή όχι κατακόρυφες γραμμές κύλισης.

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

Οι σταθερές του στυλ βρίσκονται στην κλάση SWT ως δημόσια στατικά πεδία. Η Παραπομπή API για το SWT παρέχει μια λίστα εφαρμόσιμων σταθερών για κάθε κλάση οργάνων.

Αποδέσμευση πόρων

Οι πλατφόρμες που ανήκουν στο SWT απαιτούν ρητή δέσμευση και αποδέσμευση των πόρων λειτουργικού συστήματος. Σε συμφωνία με τη φιλοσοφία σχεδιασμού του SWT για την αντανάκλαση της δομής εφαρμογής πλατφόρμας στο πακέτο εργαλείων του οργάνου, το SWT απαιτεί ρητά την αποδέσμευση των πόρων λειτουργικού συστήματος που έχετε δεσμεύσει. Σε SWT, η μέθοδος Widget.dispose() χρησιμοποιείται για την αποδέσμευση πόρων που συνδέονται με ένα συγκεκριμένο αντικείμενο του πακέτου εργαλείων.

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

Δεν υπάρχει εξαίρεση για αυτούς τους κανόνες. Απλά αντικείμενα δεδομένων όπως τα Rectangle και Point, δε χρησιμοποιούν πόρους του λειτουργικού συστήματος. Δεν έχουν μέθοδο dispose() και δε χρειάζεται να τα αποδεσμεύσετε. Αν υπάρχουν αμφιβολίες, ελέγξτε το javadoc για μια συγκεκριμένη κλάση.

Ανατρέξτε στην ενότητα Διαχείριση λειτουργικών πόρων για μια πιο εκτεταμένη πραγμάτευση του θέματος.