Διατάξεις

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

Το SWT ορίζει διατάξεις που παρέχουν τοποθέτηση και ρύθμιση του μεγέθους θυγατρικών οργάνων σε ένα σύνθετο στοιχείο για γενικούς σκοπούς. Οι διατάξεις είναι υποκλάσεις της αφηρηρημένης κλάσης Layout. Οι τυπικές διατάξεις του SWT βρίσκονται στο πακέτο org.eclipse.swt.layout.

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

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

Από τις διατάξεις εισάγονται κάποιες πρόσθετες έννοιες:

Ανατρέξτε στην ενότητα Understanding layouts in SWT για περισσότερες πληροφορίες και εικόνες που παρουσιάζουν αυτές τις έννοιες.

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

      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
   shell.addControlListener (new ControlAdapter () {
      public void controlResized (ControlEvent e) {
      label.setBounds (shell.getClientArea ());
      }
   });

Το επόμενο τμήμα κώδικα χρησιμοποιεί μια διάταξη για να επιτύχει το ίδιο αποτέλεσμα:

      Display display = new Display ();
      Shell shell = new Shell (display);
      Label label = new Label (shell, SWT.CENTER);
   shell.setLayout (new FillLayout ());

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

Ο ακόλουθος πίνακας συνοψίζει τις τυπικές διατάξεις που παρέχει το SWT.

Διάταξη
Σκοπός
FillLayout Διατάσσει στοιχεία ελέγχου σε μια γραμμή ή λίστα και τα αναγκάζει να αποκτήσουν ίδιο μέγεθος.
FormLayout Τοποθετεί τα θυγατρικά στοιχεία χρησιμοποιώντας FormAttachments για την προαιρετική ρύθμιση της αριστερής, επάνω, δεξιάς και κάτω άκρης κάθε θυγατρικού στοιχείου.
GridLayout Τοποθετεί τα θυγατρικά στοιχεία σε γραμμές και στήλες.
RowLayout Τοποθετεί τα θυγατρικά στοιχεία σε οριζόντιες γραμμές ή σε κατακόρυφες στήλες.