ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669
GUI TOOLKITS Αντικειμενοστρεφείς βιβλιοθήκες κλάσεων για ταχεία ανάπτυξη GUI, οι οποίες παρέχουν έτοιμο κώδικα που χρησιμεύει ως σκελετός για τη δομή ενός υπ' ανάπτυξη προγράμματος. Οι μονάδες λογισμικού του τελευταίου, π. χ. οι κλάσεις του, κληρονομούν ιδιότητες, εμφάνιση και ένα τυποποιημένο API από τα επαναχρησιμοποιήσιμα πρότυπα του Toolkit. Τέτοιες βιβλιοθήκες υπάρχουν ενσωματωμένες σε λειτουργικά συστήματα, "πακεταρισμένες" με γλώσσες προγραμματισμού ή ανεξάρτητες από συγκεκριμένη γλώσσα και πλατφόρμα.
Java Η Java δεν είναι μόνο μία γλώσσα προγραμματισμού αλλά μία ολοκληρωμένη πλατφόρμα ανάπτυξης και εκτέλεσης αντικειμενοστρεφούς λογισμικού. Επικεντρώνεται όχι στην απόδοση του παραγόμενου κώδικα αλλά στην αύξηση της παραγωγικότητας του προγραμματιστή. Με αυτόν το στόχο, αλλά και με τη φορητότητα και την ασφάλεια του κώδικα ως ζητούμενα, παρέχει στον προγραμματιστή μία υψηλού επιπέδου αφαίρεση τόσο ως προς το υλικό (με την Εικονική Μηχανή Java) όσο και ως προς το λογισμικό (με το εκτενές, υψηλού επιπέδου API των εγγενών βιβλιοθηκών κλάσεων της Java). Η βιβλιοθήκη κλάσεων της Java είναι οργανωμένη σε μία ιεραρχία πακέτων.
Java Foundation Classes (JFC) Ένα GUI Toolkit που είναι τμήμα της εγγενούς βιβλιοθήκης κλάσεων της Java. Αποτελείται από το AWT και το Swing, δύο διακριτές βιβλιοθήκες οι οποίες εξάγουν στον προγραμματιστή ένα API ανεξάρτητο πλατφόρμας. Το Swing είναι πιο "βαρύ", χρησιμοποιεί εσωτερικά το AWT αλλά υποστηρίζει περισσότερες λειτουργίες και ομοιογενή εμφάνιση των οπτικών στοιχείων σε διαφορετικά λειτουργικά συστήματα. Παρουσιάστηκε αρχικά με την έκδοση 1.2 του Java Development Kit (JDK), το 1998, και υλοποιείται με τη μορφή ενός πακέτου της βιβλιοθήκης κλάσεων, του javax.swing.
Borland JΒuilder Ένα ολοκληρωμένο περιβάλλον ανάπτυξης λογισμικού σε Java (Java IDE), με υποστήριξη GUI βασισμένη στο Swing. Πρωτοεμφανίστηκε το 1996 και ήταν γραμμένο σε Delphi. Από την έκδοση 3.5 αναπτύσσεται πλέον και το ίδιο το JBuilder σε Java ενώ η πιο πρόσφατη έκδοση είναι η 2007.
Swing Το Swing παρέχει έναν τυποποιημένο τρόπο ανάπτυξης GUI που βασίζεται στα παρεχόμενα οπτικά στοιχεία (παράθυρα, πλαίσια κειμένου, μενού, πλήκτρα κλπ) και τον ενσωματωμένο μηχανισμό ανίχνευσης και χειρισμού συμβάντων (όπου συμβάν είναι για παράδειγμα ένα κλικ του ποντικιού ή το πάτημα ενός πλήκτρου). Ο προγραμματιστής το μόνο που έχει να κάνει είναι να δημιουργήσει τα δικά του στιγμιότυπα αυτών των έτοιμων, αφηρημένων κλάσεων, προσθέτοντας μέσω της κληρονομικότητας και του πολυμορφισμού ό,τι επιπλέον χαρακτηριστικά επιθυμεί ο ίδιος.
Swing (συνέχεια) Η λειτουργικότητα του υπό ανάπτυξη προγράμματος υλοποιείται με την τροποποίηση των ιδιοτήτων ή την κλήση κατάλληλων μεθόδων όλων αυτών των αντικειμένων την κατάλληλη στιγμή. Η επικοινωνία με το λειτουργικό σύστημα ή το υλικό και ο χειρισμός των διαφόρων συμβάντων υλοποιούνται αυτόματα από τον εσωτερικό κώδικα της βιβλιοθήκης.
Παράδειγμα : public class ButtonDemo extends JButton { public ButtonDemo() { this.setBackground(Color.yellow); this.addActionListener(new Click(this)); } public class Click implements ActionListener { private JButton button; public Click(JButton but) { button = but; } public void actionPerformed(ActionEvent e) { but.setBackground(Color.red); }
JΒuilder Ο JBuilder παρέχει έναν εύχρηστο τρόπο ταχείας ανάπτυξης εφαρμογών βασισμένων στο Swing. Για κάθε αρχείο πηγαίου κώδικα που συμμετέχει στην υπό ανάπτυξη εφαρμογή μπορούμε να προβάλλουμε ή τον ίδιο τον κώδικα (source view) ή ένα προσχέδιο του GUI της εφαρμογής (design view). Το τελευταίο έχει τη μορφή μίας φόρμας στην οποία μπορούμε να σύρουμε, από ένα ειδικό μενού επιλογών, εικονίδια που αναπαριστούν οπτικά στοιχεία του Swing και τα οποία έτσι προστίθενται στο πρόγραμμα μας, με τον JBuilder να αναλαμβάνει την αυτοματοποιημένη συγγραφή του αντίστοιχου κώδικα σύμφωνα με έτοιμα πρότυπα.
Ο προγραμματιστής με αυτόν τον τρόπο έχει τη δυνατότητα να σχεδιάσει το σκελετό της εφαρμογής του μέσα σε λίγα λεπτά χωρίς να γράψει ούτε μία εντολή. Ωστόσο θα χρειαστεί τελικά να μεταβεί σε source view και να γράψει πραγματικό κώδικα σε Java προκειμένου να υλοποιήσει την ουσιαστική λειτουργικότητα του προγράμματος (π. χ. να προσδιορίσει την ακριβή λειτουργία ενός αρχικά κενού χειριστή συμβάντων που δημιουργήθηκε αυτόματα από τον JBuilder, όταν ο προγραμματιστής εισήγαγε ένα πλήκτρο τύπου JButton στη φόρμα που αναπαριστά το κεντρικό παράθυρο της εφαρμογής).
Στο design view, όταν είναι επιλεγμένο ένα συγκεκριμένο οπτικό στοιχείο, ο JBuilder εμφανίζει σε ένα ειδικό παράθυρο το σύνολο των ιδιοτήτων του και δίνει τη δυνατότητα ανάθεσης αρχικών τιμών σε αυτές. Κάθε διαφορετικό παράθυρο της εφαρμογής αντιπροσωπεύεται από διαφορετικό αρχείο πηγαίου κώδικα, ενώ υπάρχει και ένα ειδικό αρχείο που δε σχετίζεται με το GUI και όπου βρίσκεται η συνάρτηση main() του προγράμματος.
Swing Τα οπτικά στοιχεία του Swing διακρίνονται σε containers (π. χ. Frame, Box, FileChooser, MenuBar κλπ) και σε components (π. χ. Button, RadioButton, Label, ProgressBar κλπ ), όπου τα δεύτερα τοποθετούνται στο εσωτερικό των πρώτων με τη μέθοδο add() που παρέχουν τα containers. Προκειμένου να εμφανιστεί ένα οπτικό στοιχείο στην οθόνη πρέπει πρώτα να δημιουργηθεί από το πρόγραμμα ένα στιγμιότυπο του και στη συνέχεια το στοιχείο να γίνει ορατό με κλήση της μεθόδου setVisible(). Ο κώδικας που εκτελεί αυτές τις τυπικές διαδικασίες παράγεται αυτόματα από τον JBuilder.
Παραδείγματα
Οπτικά Στοιχεία
ΤΕΛΟΣ