H κλάση BarberGui σας δίνεται σε 2 εκδόσεις:
Α) BarberGuiV1.jar με υποστήριξη για 5 ανθρωπάκια, και
Β) BarberGuiV4.jar με υποστήριξη για 5 ανθρωπάκια
Α) BarberGuiV1.jar
Η κλάση BarberGui (file BarberGuiV1.jar), στιγμιότυπο της οποίας δημιουργεί την γραφική διεπαφή στην οθόνη, κληρονομεί την Frame και έχει ένα δημιουργό που δέχεται ως όρισμα ένα String που είναι ο τίτλος του gui που θα εμφανίσει στην οθόνη.
Επιπλέον έχει μια μεταβλητή στιγμιότυπου με την δήλωση που ακολουθεί:
public Point[][] pos = new Point[5][4];
Τα στοιχεία του πίνακα pos αντιστοιχούν στις θέσεις (0-4) που μπορεί να βρεθεί κάθε ένα από τα 5 ανθρωπάκια (με κωδικούς 0-4) κατά την διάρκεια της ζωής του, με την αντιστοίχιση που δίνεται στη συνέχεια:
0 - Θέση Βάσης,
1 - Θέση Εισόδου στην αίθουσα αναμονής,
2 - Θέση στην αίθουσα αναμονής,
3 - Θέση στην καρέκλα του κουρέα.
Ο δημιουργός της BarberGui αποδίδει τιμές στα στοιχεία του πίνακα pos, οπότε εσείς μπορείτε να τα χρησιμοποιήσετε για να εμφανίσετε στην κατάλληλη θέση της γραφικής διεπαφής το button για να δείχνει την θέση που βρίσκεται κάθε στιγμή το ανθρωπάκι.
Προσέξτε πως πρέπει να βάλετε στον κώδικα σας το κατάλληλο import για την χρήση της BarberGui
import gui.BarberGui;
αφού πρώτα ενημερώσετε το περιβάλλον ανάπτυξης σας (IDE) για το που θα βρει το jar αρχείο που περιέχει την κλάση BarberGui. Στην άσκηση RPNCalculator μπορείτε να βρείτε οδηγίες για το πως θα αξιοποιήσετε αρχείο jar.
Στα πλαίσια της προτεινόμενης υλοποίησης έχουμε επιλέξει να δείχνουμε στην οθόνη την θέση που βρίσκεται το κάθε ανθρωπάκι μας με ένα στιγμιότυπο της κλάσης Button. Το στιγμιότυπο αυτό θα πρέπει να τοποθετείται ανάλογα με την κατάσταση στην οποία βρίσκεται το αντίστοιχο ανθρωπάκι στην αντίστοιχη θέση αξιοποιώντας την μέθοδο setBounds και τον πίνακα pos. Ως διαστάσεις για το Button έχουν χρησιμοποιηθεί τα 20 και 20.
Β) BarberGuiV4.jar
Η έκδοση αυτή της BarberGui έχει υποδομή για 10 ανθρωπάκια και δεν δείχνει την θέση του κουρέα με ένα κύκλο.
Θα επιλέξετε εσείς πως θα δείξετε στην γραφική διεπαφή την θέση του κουρέα. Μπορείτε να χρησιμοποιήσετε την ίδια τεχνική με αυτή που χρησιμοποιήσαμε για τα ανθρωπάκια.
Μπορείτε να χρησιμοποιήσετε τις παρακάτω συντεταγμένες για τις θέσεις του κουρέα:
barberIcon.setBounds(271,57, 30, 30); // Θέση εργασίας
barberIcon.setBounds(215,200, 20, 40); // Θέση ανάπαυσης