12.1 Εισαγωγή στο Swing

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "12.1 Εισαγωγή στο Swing"

Transcript

1 12.1 Εισαγωγή στο Swing JFC είναι το ακρωνύµιο των λέξεων Java Foundation Classes το οποίο περιλαµβάνει µια οµάδα χαρακτηριστικών για την δηµιουργία γραφικής διασύνδεσης χρήστη (GUI). ύο από τα χαρακτηριστικά του JFC είναι τo Swing και το Look and Feel (εµφάνιση και αίσθηση). Το Swing είναι ουσιαστικά µια επέκταση του AWT. Περιλαµβάνει ότι και το AWT (κουµπιά, ετικέτες, πεδία κειµένου κ.α) αλλά µε νέα χαρακτηριστικά. Οι καινοτοµίες αυτές είναι νέα συστατικά, επεκταµένα χαρακτηριστικά συστατικών και καλύτερη αίσθηση και εµφάνιση. To Swing ενσωµατώθηκε στην Java στην έκδοση 2. Τα στοιχεία του Swing είναι µέρος του πακέτου javax.swing. Το Look and Feel δίνει την δυνατότητα σε ένα πρόγραµµα που χρησιµοποιεί στοιχεία Swing να διαλέξει την εµφάνιση και την αίσθησή του, δηλαδή αν θα µοιάζει οπτικά µε πρόγραµµα των Windows, Solaris ή θα έχει ένα στυλ της Java που ονοµάζεται Metal. Το Look and Feel αναλύεται στο υποκεφάλαιο Όπως έγινε αναφορά πιο πάνω, όλα τα συστατικά του ΑWT υπάρχουν και στο Swing. Η διαφορά στον ορισµό των αντικειµένων των κλάσεων είναι ότι τα συστατικά του Swing αρχίζουν από το γράµµα J. ηλαδή το αντίστοιχο συστατικό του Button στο AWT θα είναι στο Swing το JButton κ.ο.κ. Άλλες σηµαντικές διαφορές είναι: Τα κουµπιά και ετικέτες του Swing εκτός από κείµενο µπορούν να περιέχουν και εικονίδια. Εικονίδιο είναι ένα γραφικό µικρών διαστάσεων. Ένα ακόµα χαρακτηριστικό είναι η δυνατότητα πρόσθεσης ή αλλαγής περιθωρίων γύρω από τα περισσότερα συστατικά. 157

2 12.2 Γραφική διασύνδεση χρήστη µε το Swing Η δηµιουργία µιας γραφικής διασύνδεσης χρήστη µε Swing είναι περίπου ίδια µε αυτήν του AWT και δηµιουργείται µε τα παρακάτω βήµατα. Σύνθεση µιας γραφικής διασύνδεσης χρήστη προσθέτοντας συστατικά (components) στους ενδιάµεσους υποδοχείς (content pane τοµέας περιεχοµένων). Οι ενδιάµεσοι υποδοχείς τίθενται στους ανώτερους υποδοχείς. ηµιουργία χειριστών συµβάντων που ανταποκρίνονται στην αλληλεπίδραση χρήστη µε το GUI. Για την σύνθεση µιας γραφικής διασύνδεσης υπάρχει εκτενής αναφορά στα παρακάτω κεφάλαια. Για την δηµιουργία χειριστών συµβάντων δεν υπάρχει κάποιο ξεχωριστό κεφάλαιο, αλλά στα κεφάλαια των συστατικών υπάρχουν επιγραµµατικά οι ακροατές συµβάντων που ταιριάζουν µε αυτά. Γενικά για τους χειριστές συµβάντων ισχύουν οι έννοιες του κεφαλαίου 8.4 (AWT) και στο Swing Σύνθεση γραφικής διασύνδεσης µε χρήση Swing Η σύνθεση γραφικής διασύνδεσης µε Swing είναι ίδια µε την AWT µε την διαφορά ότι υπάρχουν δύο επίπεδα υποδοχέων. Η διαδικασία σύνθεσης είναι η εξής: Αρχικά τα συστατικά προστίθενται σε ένα ενδιάµεσο υποδοχέα που καλείται τοµέας περιεχοµένων (content pane). Ο τοµέας περιεχοµένων είναι υπεύθυνος για την διάταξη των συστατικών. Οι διαχειριστές διάταξης ορίζονται σε αυτόν. Για τους διαχειριστές διάταξης ισχύουν οι έννοιες που εξετάστηκαν στο κεφάλαιο Τέλος οι ενδιάµεσοι υποδοχείς προστίθενται στους κύριους (ανώτερους) υποδοχείς. Οι ανώτεροι υποδοχείς είναι οι κλάσεις JFrame, JApplet, JOptionPane. Οι ενδιάµεσοι υποδοχείς είναι οι JPanel, JScrollPane, JSplitPane, JTabbedPane, JToolBar. Οι ενδιάµεσοι υποδοχείς προστίθενται στους ανώτερους υποδοχείς µε την µέθοδο setcontentpane(...). Οι διαχειριστές διάταξης ορίζονται στους ενδιάµεσους υποδοχείς µε την µέθοδο setlayout( ). Τα συστατικά προστίθενται στους ενδιάµεσους υποδοχείς µε την µέθοδο add( ). Οι ενδιάµεσοι υποδοχείς µπορούν να προστεθούν σε άλλους ενδιάµεσους υποδοχείς. Οι ανώτεροι υποδοχείς έχουν προεπιλεγµένους τοµείς περιεχοµένων, δηλαδή σε ένα πρόγραµµα µπορεί να δείτε την εντολή getcontentpane() (δηλαδή επιστροφή του τοµέα περιεχοµένων) χωρίς να έχει οριστεί ενδιάµεσος υποδοχέας. 158

3 12.4 Συστατικά Στα ακόλουθα κεφάλαια θα αναλυθούν τα πιο σηµαντικά χαρακτηριστικά του Swing. Όλα τα συστατικά κληρονοµούν την κλάση JComponent. Επίσης κληρονοµούν και τις κλάσεις Component και Container όπως τα συστατικά του AWT. Στα παραδείγµατα που υπάρχουν στα κεφάλαια των συστατικών, ως ανώτερος υποδοχέας θεωρείται ένα αντικείµενο της κλάσης JApplet η οποία είναι δευτερεύουσα της κλάσης Applet. ιεξοδική αναφορά στην κλάση JApplet υπάρχει στο υποκεφάλαιο Σηµαντικές µέθοδοι που κληρονοµούνται από τα συστατικά του Swing είναι της κλάσης Component και της κλάσης JComponent της οποίας οι κυριότερες µέθοδοι επεξήγονται ακολούθως: setopaque(boolean bl): Θέτει πότε ένα συστατικό θα είναι αδιαφανές. ηλαδή ένα αδιαφανές συστατικό θέτει την έκταση που κατέχει σε ένα ενδιάµεσο υποδοχέα µε το χρώµα του παρασκηνίου του. isopaque(): Επιστρέφει τύπο boolean που προσδιορίζει πότε ένα συστατικό είναι αδιαφανές. settooltiptext(string str): Θέτει το κείµενο που θα εµφανίζεται σε ένα συστατικό σε ξεχωριστό κουτάκι πάνω από αυτό όταν το ποντίκι βρίσκεται πάνω από το συστατικό. Συνήθως χρησιµοποιείται σαν ετικέτα βοήθειας για την λειτουργία του συστατικού Κουµπιά και πλαίσια ελέγχου (κλάση JCheckBox) Αυτό το υποκεφάλαιο αναφέρεται στα συστατικά που είναι δευτερεύουσες κλάσεις της AbstractButton. Αυτές είναι οι JButton, JΤoggleButton. Υποκλάση της JToggleButton είναι η JCheckBox. Σηµαντικές µέθοδοι της κλάσης AbstractButton είναι: addactionlistener(actionlistener al): H µέθοδος αυτή συσχετίζει τα συµβάντα ενέργειας (ActionListener) µε ένα συστατικό JButton. additemlistener(itemlistener il): Προσθέτει έναν ακροατή στοιχείων (ItemListener) σε ένα συστατικό JCheckBox. setenabled(boolean bl): Ανάλογα µε την τιµή της µεταβλητής bl ενεργοποιεί ή απενεργοποιεί ένα συστατικό. 159

4 sethorizontalalignment(int hl): Θέτει την οριζόντια διεύθυνση του κειµένου και του εικονιδίου (icon). Οι τιµές της µεταβλητής hl µπορεί να είναι CENTER, LEFT, RIGHT, LEADING ή TRAILING. Η προεπιλεγµένη τιµή είναι η CENTER. sethorizontaltextposition(int h): Θέτει την οριζόντια θέση του κειµένου σε σχέση µε το εικονίδιο. Οι τιµές της µεταβλητές h µπορεί να είναι RIGHT, LEFT, CENTER, LEADING ή TRAILING. H προεπιλεγµένη τιµή είναι η RIGHT. seticon(icon i): Θέτει ένα εικονίδιο σε ένα συστατικό. setmnemonic(char ch): Θέτει το κουµπί του πληκτρολογίου που µαζί µε το alt θα ενεργοποιούν το συστατικό. Η τιµή της µεταβλητής ch έχει την τύπο KeyEvent.VK_X όπου X οποιοδήποτε γράµµα. settext(string str): Θέτει το κείµενο του συστατικού. setverticalalignment(int va): Θέτει την κάθετη σύνταξη του κειµένου και του εικονιδίου. Οι τιµές της µεταβλητής va µπορεί να είναι CENTER, TOP, BOTTOM. Η προεπιλεγµένη τιµή είναι η CENTER. setverticaltextposition(int v): Θέτει την κάθετη θέση του κειµένου σε σχέση µε το εικονίδιο. Η µεταβλητή v µπορεί να πάρει της εξής τιµές: CENTER, TOP, BOTTOM. Η προεπιλεγµένη τιµή είναι η CENTER. Οι παραπάνω µέθοδοι κληρονοµούνται σε όλα τα αντικείµενα των υποκλάσεων της AbstractButton. Επιπρόσθετα κληρονοµούνται οι µέθοδοι της κλάσης Component που αναλύθηκαν στο κεφάλαιο Η κλάση JButton ορίζει ένα κουµπί του οποίου οι πιο σηµαντικοί δηµιουργοί είναι: JButton(String str): ηµιουργεί ένα αντικείµενο της JButton µε κείµενο str. JButton(String str, Icon i): ηµιουργεί ένα αντικείµενο της JButton µε κείµενο str και εικονίδιο i. Η κλάση JCheckBox ορίζει ένα πλαίσιο ελέγχου. Οι πιο σηµαντικοί δηµιουργοί του είναι: JCheckBox(String str, boolean bl): ηµιουργεί ένα πλαίσιο ελέγχου µε κείµενο str. Η µεταβλητή bl καθορίζει αν το πλαίσιο θα είναι επιλεγµένο. JCheckBox(String str, Icon i, boolean bl): Η ίδια µε την παραπάνω και επιπλέον έχει εικονίδιο i. Στο παρακάτω παράδειγµα ένα αντικείµενο JButton και ένα JChechBox προστίθενται στον ενδιάµεσο υποδοχέα JPanel. Το κουµπί ορίζεται έτσι ώστε να ενεργοποιείται και µε το ταυτόχρονο πάτηµα των πλήκτρων alt και J. 160

5 import javax.swing.*; import java.awt.event.*; public class AppJButton extends JApplet{ public void init() { JPanel jp=new JPanel(); JButton jb=new JButton("JButton"); JCheckBox jcb=new JCheckBox("CheckBox",true); jb.setmnemonic(keyevent.vk_j); jp.add(jb); jp.add(jcb); setcontentpane(jp); Παράδειγµα 12.1 AppJButton.java <APPLET CODE = "AppJButton.class" WIDTH = 200 HEIGHT= 100> </APPLET> Παράδειγµα 12.1 appjbuttonviewer.html Προσοχή: Το παραπάνω έγγραφο html τρέχει µόνο µε το εργαλείο appletviewer της Java. Ενώ στις µικροεφαρµογές του AWT το έγγραφο html µπορεί να φορτωθεί και από έναν εξεταστή, στις µικροεφαρµογές Swing δεν είναι δυνατό, χωρίς κάποια τροποποίηση του. Στο πρωτότυπο έγγρφο html πρέπει να προστεθεί κώδικας µέσω του εργαλείου html converter έτσι ώστε να µπορεί να φορτωθεί από έναν εξεταστή. Η χρήση του εργαλείου είναι απλή. Επιλέγουµε µε την βοήθεια του εργαλείου τον κατάλογο που βρίσκεται το έγγραφο html και στην συνέχεια πατώντας το κουµπί convert προστίθεται ο απαραίτητος κώδικας στο έγγραφο. Σε αυτό το κεφάλαιο τα πρωτότυπα έγγραφα html που τρέχουν µόνο µε το εργαλείο appletviewer έχουν κατάληξη viewer ενώ τα έγγραφα που έχουν επιπλεόν κώδικα έχουν το όνοµα του προγράµµατος. Π.χ. το παραπάνω πρόγραµµα AppJButton.java έχει πρωτότυπο έγγραφο html το appjbuttonviewer.html και τροποποιηµένο το appjbutton.html Επιλογέας χρωµάτων (κλάση JColorChooser) Η κλάση JColorChooser δηµιουργεί µια παλέτα χρωµάτων. Η παλέτα της JColorChooser περιλαµβάνει τρία πλαίσια µέσα από τα οποία µπορεί να επιλεχθεί ένα επιθυµητό χρώµα. Τα τρία 161

6 αυτά πλαίσια είναι το Swatches και τα µοντέλα χρωµάτων HSB και RGB. Τα αρχικά του µοντέλου RGB σηµαίνουν red, green, blue και εκφράζουν την αναλογία στην παρασκευή του τελικού χρώµατος. Οι πιο σηµαντικοί δηµιουργοί της κλάσης JColorChooser είναι: JColorChooser(): ηµιουργεί ένα αντικείµενο της κλάσης JColorChooser µε προεπιλεγµένη τιµή το άσπρο χρώµα. JColorChooser(Color c): ηµιουργεί ένα αντικείµενο της κλάσης JColorChooser µε προεπιλεγµένη τιµή το χρώµα c. Αξιοµνηµόνευτες µέθοδοι της JColorChooser είναι: getcolor(): Επιστρέφει το επιλεγµένο χρώµα της παλέτας. setcolor(color c): Θέτει το χρώµα της παλέτας. setcolor(int r, int g, int b): Θέτει το χρώµα της παλέτας. Κάθε ακέραιο όρισµα εκφράζει το ποσοστό του κόκκινου του πράσινου και του µπλε χρώµατος αντίστοιχα στις µεταβλητές r, g, b. Οι τιµές των µεταβλητών µπορεί να είναι από 0 έως Επιλογέας αρχείων (κλάση JFileChooser) Ο επιλογέας αρχείων παρέχει ένα περιβάλλον γραφικής διασύνδεσης στο χρήστη για την περιήγηση του στα αρχεία του υπολογιστή. Αυτή η διαδικασία µπορεί να περιλαµβάνει επιλογή αρχείου, αλλαγή καταλόγου, δηµιουργία καταλόγου κ.ο.κ.. Ο επιλογέας αρχείων υλοποιείται µε την κλάση JFileChooser της οποίας οι πιο σηµαντικοί δηµιουργοί είναι: JFileChooser(): ηµιουργεί ένα επιλογέα αρχείων µε επιλεγµένο κατάλογο τον default του συστήµατος. JFileChooser(String str): ηµιουργεί έναν επιλογέα αρχείων µε επιλεγµένο τον κατάλογο που υπάρχει στην γραµµατοσειρά str. Μια σηµαντική λεπτοµέρεια είναι ότι ένα αντικείµενο της κλάσης JFileChooser είναι υπεύθυνο µόνο για την παρουσίαση του επιλογέα αρχείων. Οι εντολές για το άνοιγµα ή το σώσιµο ενός αρχείου πρέπει να γίνουν από τον προγραµµατιστή. Ο επιλογέας αρχείων γίνεται ορατός µε τις µεθόδους: showdialog(component c, String str): Εµφανίζει τον επιλογέα αρχείων. Η µεταβλητή c είναι το όνοµα του αντικειµένου της κλάσης στο οποία θα εµφανιστεί ο επιλογέας αρχείων. Η µέθοδος αυτή επιστρέφει ακέραια τιµή, που µπορεί να είναι η CANCEL_OPTION ή APPROVE_OPTION. Για τις τιµές αυτές είναι υπεύθυνα δύο κουµπιά που βρίσκονται πάνω στο επιλογέα αρχείων. Το ένα έχει πάντα την τιµή Cancel και όταν επιλέγεται επιστρέφει την τιµή CANCEL_OPTION. Το δεύτερο έχει την τιµή που ορίζεται από την µεταβλητή str και όταν επιλέγεται η µέθοδος 162

7 επιστρέφει τον ακέραιο APPROVE_OPTION. showsavedialog(component c): Ισχύει ότι και στην παραπάνω µόνο που ως τιµή της µεταβλητής str είναι η τιµή Save. showopendialog(component c): Ισχύει ότι και στην πρώτη µε την διαφορά ότι η µεταβλητή str έχει την τιµή Open. Χρήσιµες µέθοδοι του επιλογέα αρχείων είναι: getfileselectionmode(): Επιστρέφει ένα ακέραιο µε την τρέχουσα κατάσταση του επιλογέα αρχείων, δηλαδή εάν θα εµφανίζονται µόνο τα αρχεία, µόνο οι κατάλογοι ή και τα δύο µαζί. Οι αντίστοιχες ακέραιες τιµές για κάθε κατάσταση είναι FILES_ONLY, DIRECTORIES_ONLY, FILES_AND_DIRECTORIES. getselectedfile(): Επιστρέφει το αρχείο που είναι επιλεγµένο. Ο τύπος επιστροφής δεν είναι String αλλά File. getselectedfiles(): Επιστρέφει τα επιλεγµένα αρχεία σε ένα πίνακα τύπου File. setfileselectionmode(int x): Είναι η συµπληρωµατική της getfileselectionmode(), δηλαδή θέτει την κατάσταση του επιλογέα αρχείων. Έτσι η µεταβλητή x µπορεί να πάρει τις τιµές FILES_ONLY, DIRECTORIES_ONLY, FILES_AND_DIRECTORIES. setselectedfile(file f): Θέτει ένα αρχείο f ως επιλεγµένο. setselectedfiles(file[] f): Θέτει έναν πίνακα αρχείων f ως πίνακα επιλεγµένων αρχείων. Για τον χειρισµό ενός γεγονότος που παράγεται από ένα αντικείµενο της κλάσης JFileChooser χρησιµοποιείται ο ακροατής συµβάντων ActionListener Ετικέτες (κλάση JLabel) Η ετικέτα είναι ένα συστατικό που περιέχει κείµενο ή κάποιο εικονίδιο. Η υπεύθυνη κλάση για αυτήν είναι η JLabel. Η κλάση JLabel κληρονοµεί απευθείας την JComponent. Οι πιο σηµαντικοί δηµιουργοί της είναι: JLabel(String str): ηµιουργεί ένα αντικείµενο JLabel µε κείµενο str. JLabel(String str, Icon i, int x): ηµιουργεί ένα αντικείµενο JLabel µε καθορισµένο κείµενο str, εικονίδιο i και στοίχιση x. Οι πιθανές τιµές του ακέραιου x είναι οι LEFT, CENTER, RIGHT, LEADING ή TRAILING. JLabel(String str, int x): Είναι ίδια µε την παραπάνω, απλώς δεν περιέχει κάποιο εικονίδιο. 163

8 Χρήσιµες µέθοδοι της κλάσης JLabel είναι: geticon(): Επιστρέφει το εικονίδιο που εµφανίζει η ετικέτα. gettext(): Επιστρέφει το κείµενο που υπάρχει στην ετικέτα seticon(icon i): Θέτει το εικονίδιο i σε ένα αντικείµενο της JLabel. settext(string str): Θέτει το κείµενο str σε µια ετικέτα Λίστες (κλάση JList) Η λίστα είναι µια στήλη από στοιχεία τα οποία µπορεί να επιλέξει ο χρήστης. Αρµόδια κλάση για τις λίστες είναι η JList η οποία επιτρέπει την επιλογή περισσότερων τους ενός στοιχείων. Οι σηµαντικότεροι δηµιουργοί της JList είναι: JList(): ηµιουργεί µια άδεια λίστα. JList(ListModel lm): ηµιουργεί µια λίστα µε στοιχεία από το lm µοντέλο. Το lm µοντέλο περιέχει τα στοιχεία που προστίθενται στην λίστα. Όταν αρχικοποιείται µια λίστα ο κατασκευαστής δηµιουργεί το προεπιλεγµένο µοντέλο λίστας. Αυτό το µοντέλο λίστας είναι όµως αµετάβλητο. Στην θέση του µπορεί να χρησιµοποιηθεί ένα µοντέλο λίστας που επιτρέπει την αλλαγή της κατάστασης των στοιχείων, όπως είναι ένα αντικείµενο της κλάσης DefaultListModel. Χρήσιµές µέθοδοι της κλάσης JList είναι: addlistselectionlistener(listselectionlistener l): Η µέθοδος αυτή συσχετίζει µια λίστα µε έναν ακροατή συµβάντων ListSelectionListener. Αυτός ο ακροατής είναι υπεύθυνος για γεγονότα αλλαγής τιµής του επιλεγµένου στοιχείου της λίστας. Η µέθοδος του συγκεκριµένου ακροατή είναι η valuechanged(listselectionevent e). getselectedindex(): Επιστρέφει έναν ακέραιο που δείχνει την θέση του πρώτου επιλεγµένου στοιχείου στην λίστα. Αν δεν υπάρχει επιλεγµένο στοιχείο επιστρέφει την τιµή 1. getselectedindices(): Επιστρέφει έναν πίνακα ακεραίων µε την θέση των επιλεγµένων στοιχείων στην λίστα. getselectedvalue(): Επιστρέφει την τιµή του πρώτου επιλεγµένου στοιχείου στην λίστα. Αν δεν υπάρχει επιλεγµένο στοιχείο επιστρέφει την τιµή null. getselectedvalues(): Επιστρέφει τις τιµές των επιλεγµένων στοιχείων της λίστας. getselectionmode(): Επιστρέφει µια ακέραια τιµή που δείχνει αν επιτρέπεται η πολλαπλή επιλογή στοιχείων. setselectedindex(int x): Επιλέγει το στοιχείο που βρίσκεται στην 164

9 θέση x της λίστας setselectedindices(int[] x): Θέτει ως επιλεγµένα, τα στοιχεία που βρίσκονται στις θέσεις της λίστας που προσδιορίζονται από τον πίνακα x. setselectedvalue(object obj, boolean b): Θέτει την τιµή του επιλεγµένου στοιχείου. Το όρισµα b είναι υπεύθυνο για την εµφάνιση ή µη µιας λίστας κύλισης. setselectionmode(int x): Προσδιορίζει πότε θα είναι απλή ή πoλλαπλή η επιλογή στοιχείων. Το όρισµα x µπορεί να πάρει τις τιµές INGLE_SELECTION, SINGLE_INTERVAL_SELECTION, MULTIPLE_INTERVAL_SELECTION. Ως πρόθεµα των τιµών αυτών υπάρχει η ListSelectionModel. Στην συνέχεια αναφέρονται κάποιες µέθοδοι της κλάσης DefaultListModel. addelement(object obj): Προσθέτει ένα συστατικό στο τέλος της λίστας. getelementat(int x): Επιστρέφει το συστατικό που βρίσκεται στην θέση x του πίνακα. Ο τύπος επιστροφής της µεθόδου είναι Object. getsize(): Επιστρέφει τον αριθµό των στοιχείων στην λίστα. insertelementat(object obj, int x): Εισάγει ένα συστατικό στην θέση x της λίστας. remove(int x): Αφαιρεί το συστατικό που βρίσκεται στην θέση x της λίστας. tostring(): Επιστρέφει ένα String, το οποίο δείχνει και πιστοποιεί τις ιδιότητες του αντικειµένου που προσδιορίζει η µέθοδος. Στην συνέχεια υπάρχει ένα πρόγραµµα που χρησιµοποιεί µια λίστα για την πρόσθεση και την αφαίρεση ονοµάτων από αυτή. import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class AppJList extends JApplet { JList list; DefaultListModel listmodel; static final String instring = "Εισαγωγή"; static final String delstring = " ιαγραφή"; JButton delbutton; JTextField friendname; Πρόγραµµα 12.2 AppJList.java (1 από 3) 165

10 public void init() { listmodel = new DefaultListModel(); listmodel.addelement("μιχάλης Παπαγιαννάκης"); listmodel.addelement("κώστας Τζιµόπουλος"); listmodel.addelement(" ηµήτρης Παπαδόπουλος"); listmodel.addelement("γιάννης Καραδήµος"); /* ηµιουργείται µια λίστα και τοποθετείται σε ένα πάνελ κύλισης. Ορίζονται δύο κουµπιά το inbutton και το delbutton. Το πρώτο συσχετίζεται µε την εσωτερική κλάση inlistener η οποία υλοποιεί την διασύνδεση ActionListener. Το κουµπί inbutton προσθέτει το όνοµα που βρίσκεται στο πεδίο κειµένου στην λίστα. Το δεύτερο κουµπί συσχετίζεται µε την κλάση delbutton που υλοποιεί την διασύνδεση ActionListener. Το κουµπί delbutton αφαιρεί το όνοµα που βρίσκεται επιλεγµένο στην λίστα από αυτή. */ list = new JList(listModel); list.setselectionmode(listselectionmodel.single_selection); list.setselectedindex(0); JScrollPane listscrollpane = new JScrollPane(list); JButton inbutton = new JButton(inString); inbutton.setactioncommand(instring); inbutton.addactionlistener(new inlistener()); delbutton = new JButton(delString); delbutton.setactioncommand(delstring); delbutton.addactionlistener(new dellistener()); friendname = new JTextField(10); friendname.addactionlistener(new inlistener()); String name = listmodel.getelementat( list.getselectedindex()).tostring(); friendname.settext(name); JPanel buttonpane = new JPanel(); buttonpane.add(friendname); buttonpane.add(inbutton); buttonpane.add(delbutton); getcontentpane().add(listscrollpane, BorderLayout.CENTER); getcontentpane().add(buttonpane, BorderLayout.SOUTH); /* Χειρισµός συµβάντων για το κουµπί delbutton. ιαγράφεται όποιο κουµπί είναι επιλεγµένο στην λίστα. Αν η λίστα δεν έχει κανένα στοιχείο τότε το κουµπί delbutton απενεργοποιείται. Αν το όνοµα που διαγραφεί είναι το τελευταίο στην σειρά της λίστας τότε ως επιλεγµένο (όνοµα) τίθεται το αµέσως προηγούµενο. */ class dellistener implements ActionListener { public void actionperformed(actionevent e) { int index = list.getselectedindex(); listmodel.remove(index); int size = listmodel.getsize(); if (size == 0) { delbutton.setenabled(false); else { if (index == listmodel.getsize()) index--; list.setselectedindex(index); Πρόγραµµα 12.2 AppJList.java (2από 3) 166

11 /* Χειρισµός συµβάντων για το κουµπί inbutton. Αν δεν υπάρχει κανένα στοιχείο στην λίστα ή το επιλεγµένο στοιχείο είναι το τελευταίο, τότε προστίθεται το νέο όνοµα ως καινούργιο στοιχείο και επιλέγεται. ιαφορετικά, εισάγεται ένα στοιχείο µετά το τρέχον και επιλέγεται. */ class inlistener implements ActionListener { public void actionperformed(actionevent e) { int index = list.getselectedindex(); int size = listmodel.getsize(); if (index == -1 (index+1 == size)) { listmodel.addelement(friendname.gettext()); list.setselectedindex(size); else { listmodel.insertelementat(friendname.gettext(),index+1); list.setselectedindex(index+1); Πρόγραµµα 12.2 AppJList.java (3 από 3) <APPLET CODE = "AppJList.class" WIDTH = 330 HEIGHT = 200> </APPLET> Πρόγραµµα 12.2 appjlistviewer.html Το παραπάνω πηγαίο αρχείο µετά την µεταγλώττισή του, θα παράγει τα τρία αρχεία AppJList.class, AppJList$delListener.class, AppJList$inListener.class. Τα δύο τελευταία παράγονται από τις εσωτερικές κλάσεις της µικροεφαρµογής Μενού (κλάση JMenu) Τα µενού είναι συστατικά που παρέχουν την δυνατότητα στον χρήστη να διαλέξει µία από τις πολλές επιλογές τους. Tα µενού σώζουν χώρο του GUI του προγράµµατος, αφού δεν εµφανίζουν όλες τις επιλογές τους σε αυτό όπως οι λίστες. Για να γίνουν ορατές οι επιλογές ενός µενού πρέπει ο χρήστης να κάνει κλικ στην µπάρα του µενού. Οι σηµαντικότερες κλάσεις που είναι υπεύθυνες για την δηµιουργία ενός µενού είναι οι JMenuBar, JMenu, JMenuItem, JSeperator. Η κλάση JMenubar είναι η βάση για την δηµιουργία ενός µενού. Σε αυτήν προστίθενται αντικείµενα της κλάσης JMenu τα οποία δηµιουργούν µια αναδυόµενη λίστα από αντικείµενα της JMenuItem. Τα αντικείµενα JMenuItem είναι οι επιλογές του µενού. Επίσης στην JMenu 167

12 µπορεί να προστεθεί ένα αντικείµενο της κλάσης JSeperator το οποίο δηµιουργεί µια διαχωριστική γραµµή στο µενού. Οι πιο σηµαντικοί δηµιουργοί των παραπάνω κλάσεων είναι: JMenuBar(): ηµιουργεί µια µπάρα µενού. JMenu(): ηµιουργεί ένα αντικείµενο JMenu χωρίς κείµενο. JMenu(String str): ηµιουργεί ένα αντικείµενο JMenu µε κείµενο str. JMenuItem(): ηµιουργεί ένα αντικείµενο JMenuItem χωρίς κείµενο. JMenuItem(String str): ηµιουργεί ένα αντικείµενο JMenuItem µε κείµενο str. JSeperator(): ηµιουργεί ένα αντικείµενο της κλάσης JSeperator. Αξιοµνηµόνευτες µέθοδοι για τις παραπάνω κλάσεις είναι: Για την JMenuBar: Για την JMenu: add(jmenu menu): Προσθέτει ένα αντικείµενο JMenu στο τέλος της µπάρας. setjmenubar(jmenubar menubar): Αυτή η µέθοδος θέτει την µπάρα menubar σε ένα αντικείµενο των κλάσεων JApplet, JDialog, JFrame. εν ανήκει στην κλάση JMenuBar, αλλά υπάρχει στις κλάσεις JApplet, JDialog, JFrame. add(jmenuitem menuitem): Επισυνάπτει το αντικείµενο menuitem στο τέλος του µενού. addmenulistener(menulistener menul): Συσχετίζει ένα µενού µε τον ακροατή συµβάντων MenuListener που είναι υπεύθυνος για γεγονότα που προκαλούν τα µενού. Οι µέθοδοι του ακροατή συµβάντων είναι οι menucanceled(menuevent e), menudeselected(menuevent e), menuselected(menuevent e). addseperator(): Επισυνάπτει ένα διαχωριστή στο τέλος του µενού. Στο παρακάτω παράδειγµα ορίζεται µια µπάρα µενού που έχει δύο αντικείµενα της κλάσης JMenu. To πρώτο αντικείµενό της αποτελείται από 5 επιλογές, ενώ το δεύτερο από µία. Όταν ο χρήστης επιλέγει κάποιο στοιχείο, τότε στην περιοχή κειµένου υπάρχει αναφορά της ταυτότητάς του. Το πρώτο στοιχείο του πρώτου µενού µπορεί να επιλεχθεί και µε τον συνδυασµό των κουµπιών alt

13 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class AppMenu extends JApplet implements ActionListener{ JTextArea textarea; JScrollPane scrollpane; JMenuItem it1,it2,it3,it4,it5,it6; /* Στην γραφική διασύνδεση της µικροεφαρµογής χρησιµοποιείται ο προεπιλεγµένος διαχειριστής διάταξης BorderLayout (διάταξη περιγράµµατος). */ public void init() { JMenuBar menubar; JMenu menu1,menu2; textarea = new JTextArea(5, 30); textarea.seteditable(false); scrollpane = new JScrollPane(textarea); getcontentpane().add(scrollpane, BorderLayout.CENTER); // ηµιουργία µενού µπάρας menubar = new JMenuBar(); setjmenubar(menubar); // ηµιουργία του πρώτου µενού menu1 = new JMenu( Πρώτο µενού ); menubar.add(menu1); // ηµιουργία στοιχείων µενού και πρόσθεση τους στο κυρίως µενού it1 = new JMenuItem( Πρώτη επιλογή ); it1.addactionlistener(this); it1.setaccelerator(keystroke.getkeystroke( KeyEvent.VK_1, ActionEvent.ALT_MASK)); menu1.add(it1); it2 = new JMenuItem( εύτερη επιλογή ); it2.addactionlistener(this); menu1.add(it2); it3 = new JMenuItem( Τρίτη επιλογή ); it3.addactionlistener(this); menu1.add(it3); menu1.addseparator(); it4 = new JMenuItem("Τέταρτη επιλογή"); it4.addactionlistener(this); menu1.add(it4); it5 = new JMenuItem("Πέµπτη επιλογή"); it5.addactionlistener(this); menu1.add(it5); Παράδειγµα 12.3 AppMenu.java (1 από 2) 169

14 // ηµιουργία του δεύτερου µενού menu2 = new JMenu(" εύτερο µενού"); menubar.add(menu2); it6 = new JMenuItem("Πρώτη επιλογή"); it6.addactionlistener(this); menu2.add(it6); /* Χειρισµός συµβάντων µενού. Το µήνυµα που εµφανίζεται στην περιοχή κειµένου προσδιορίζει το στοιχείο µενού που επιλέχθηκε. */ public void actionperformed(actionevent e){ Object source = e.getsource(); if(source==it1) textarea.settext("πρώτο µενού-πρώτο στοιχείο "); if(source==it2) textarea.settext("πρώτο µενού-δεύτερο στοιχείο "); if(source==it3) textarea.settext("πρώτο µενού-τρίτο στοιχείο "); if(source==it4) textarea.settext("πρώτο µενού-τέταρτο στοιχείο "); if(source==it5) textarea.settext("πρώτο µενού-πέµπτο στοιχείο "); if(source==it6) textarea.settext(" εύτερο µενού-πρώτο στοιχείο "); Παράδειγµα 12.3 AppMenu.java (2 από 2) <APPLET CODE = "AppMenu.class" WIDTH = 350 HEIGHT = 150> </APPLET> Παράδειγµα 12.3 appmenuviewer.html Γραµµή εξέλιξης (κλάση JProgressBar) Μερικές φορές ορισµένες εργασίες σε ένα πρόγραµµα χρειάζονται ορισµένη ώρα για να ολοκληρωθούν. Μια φιλική ένδειξη προς το χρήστη είναι να παρέχει το πρόγραµµα ένδειξη για το ποσοστό της εργασίας που έχει ολοκληρωθεί. Αυτό επιτυγχάνεται µε τις γραµµές εξέλιξης που δηµιουργούνται από την κλάση JProgressBar. Στις γραµµές εξέλιξης προσδιορίζονται δύο τιµές που δηλώνουν τα σηµεία που αρχίζει και τελειώνει η επιθυµητή εργασία. Οι κυριότεροι δηµιουργοί της JProgressBar είναι: JProgressBar(): ηµιουργεί µια οριζόντια γραµµή εξέλιξης 170

15 JProgressBar(int x): ηµιουργεί µια γραµµή εξέλιξης µε προσαναταλισµό που προσδιορίζεται από το όρισµα x το οποίο µπορεί να πάρει τις τιµές JProgressBar.VERTICAL, JProgressBar.HORIZONTAL για την κατακόρυφη και την οριζόντια περίπτωση αντίστοιχα. JProgrssBar(int x, int min, int max): ηµιουργεί µια γραµµή εξέλιξης µε min την αρχική και max την τελική τιµή της. Ο προσανατολισµός καθορίζεται από το όρισµα x. Χρήσιµες µέθοδοι της κλάσης JProgressBar είναι: setmaximum(int x): Θέτει την τελική τιµή της γραµµής εξέλιξης. setminimum(int x): Θέτει την αρχική τιµή της γραµµής εξέλιξης. setorientation(int x): Θέτει τον προσανατολισµό της γραµµής εξέλιξης. Το όρισµα x µπορεί να πάρει τις τιµές JProgressBar.VERTICAL, JProgressBar.HORIZONTAL για κατακόρυφη και οριζόντια κατεύθυνση αντίστοιχα. setstringpainted(boolean bl): Αν το όρισµα bl είναι true θα εµφανίζεται ένα String επάνω στην γραµµή εξέλιξης µε το ποσοστό της εργασίας που έχει ολοκληρωθεί. setvalue(int x): Το όρισµα x θέτει την τιµή από όπου θα αρχίζει η γραµµή εξέλιξης. Ακολούθως δίνεται σχηµατικά ένα στιγµιότυπο της γραµµής εξέλιξης: Μηχανισµός ολίσθησης (κλάση JSlider) Ο µηχανισµός ολίσθησης επιτρέπει στον χρήστη να θέσει µία αριθµητική τιµή ανάµεσα σε µια µέγιστη και µια ελάχιστη. Με αυτόν τον τρόπο µειώνονται τα λάθη λόγω του περιορισµένου εύρους των τιµών. Ο µηχανισµός ολίσθησης υλοποιείται µε την κλάση JSlider. Οι σηµαντικότεροι δηµιουργοί της JSlider είναι: JSlider(int min, int max): ηµιουργεί ένα µηχανισµό ολίσθησης µε min ελάχιστη τιµή και max µέγιστη. JSlider(int min, int max, int v): Ίδια µε την παραπάνω αλλά µε αρχική τιµή v. JSlider(int x, int min, int max, int v): ηµιουργεί ένα µηχανισµό ολίσθησης µε ελάχιστη τιµή min, µέγιστη τιµή max, αρχική τιµή v και προσανατολισµό x. Το όρισµα x µπορεί να πάρει τις τιµές JSlider.VERTICAL, JSlider.HORIZONTAL για κάθετο και οριζόντιο προσανατολισµό αντίστοιχα. 171

16 Χρήσιµες µέθοδοι της κλάσης JSlider είναι οι παρακάτω: addchangelistener(changelistener c): Συσχετίζει τον µηχανισµό ολίσθησης µε τον ακροατή συµβάντων ChangeListener που είναι υπεύθυνος να αντιλαµβάνεται αλλαγές τιµών στον µηχανισµό ολίσθησης. Η µοναδική µέθοδος του ακροατή συµβάντων είναι η statechanged(changeevent e). getvalue(): Επιστρέφει την τρέχουσα τιµή του µηχανισµού ολίσθησης setmajortickspacing(int x): Αυτή η µέθοδος θέτει µια απόσταση x µεταξύ των κύριων συµβόλων υποδιαίρεσης. ηλαδή, αν το πεδίο ορισµού του µηχανισµού ολίσθησης είναι από 0 έως 50 και το x=10 τότε τα κύρια σύµβολα υποδιαίρεσης θα υπάρχουν στις τιµές 0,10,20,30,40,50. setmaximun(int max): Θέτει την τιµή max µέγιστη τιµή του µηχανισµού ολίσθησης. setminimum(int min): Θέτει την τιµή min ελάχιστη τιµή του µηχανισµού ολίσθησης. setminortickspacing(int x): Θέτει µια απόσταση x µεταξύ των δευτερευόντων συµβόλων υποδιαίρεσης. setpaintticks(boolean bl): Αν το όρισµα bl είναι true θα εµφανίζονται τα σύµβολα υποδιαίρεσης. setpaintlabels(boolean bl): Αν το όρισµα bl είναι true θα εµφανίζεται η αριθµητική τιµή του µηχανισµού ολίσθησης. setvalue(int v): Θέτει την τιµή v ως τρέχουσα τιµή του µηχανισµού ολίσθησης. Στο ακόλουθο παράδειγµα ορίζονται δύο µηχανισµοί ολίσθησης και ένα πεδίο κειµένου. Για το πεδίο κειµένου υπάρχει αναφορά στο επόµενο κεφάλαιο. Ο πρώτος µηχανισµός ολίσθησης έχει περιοχή τιµών από 0 έως 100 µε αρχική τιµή 10. Ο δεύτερος µηχανισµός ολίσθησης έχει περιοχή τιµών από 0 έως 1000 µε αρχική τιµή 100. Το πεδίο κειµένου έχει το άθροισµα των τρεχόντων τιµών των µηχανισµών ολίσθησης. Για να επιτευχθεί αυτό το πρόγραµµα υλοποιεί την διασύνδεση ChangeListener. Ο ακροατής συµβάντων ChangeListener χειρίζεται την αλλαγή των τιµών των µηχανισµών ολίσθησης. Η µέθοδος String.valueOf(x+y) χρησιµοποιείται για να µετατρέψει το ακέραιο άθροισµα x+y σε τύπο String. Επίσης χρησιµοποιείται ο προεπιλεγµένος διαχειριστής διάταξης του ενδιάµεσου υποδοχέα της κλάσης JApplet που είναι ο BorderLayout. import java.awt.*; import javax.swing.*; import javax.swing.event.*; public class AppSlider extends JApplet implements ChangeListener{ // Ορισµός των συστατικών του προγράµµατος JSlider slide,slide1; JTextField textfield; int x=10,y=100; Παράδειγµα 12.4 AppSlider.java (1 από 2) 172

17 public void init(){ textfield=new JTextField(String.valueOf(x+y),50); // Ορισµός χαρακτηριστικών του πρώτου µηχανισµού ολίσθησης slide=new JSlider(JSlider.HORIZONTAL,0,100,10); slide.setmajortickspacing(10); slide.setminortickspacing(5); slide.setpaintticks(true); slide.setpaintlabels(true); slide.addchangelistener(this); // Ορισµός χαρακτηριστικών του δεύτερου µηχανισµού ολίσθησης slide1=new JSlider(JSlider.HORIZONTAL,0,1000,100); slide1.setmajortickspacing(100); slide1.setminortickspacing(50); slide1.setpaintticks(true); slide1.setpaintlabels(true); slide1.addchangelistener(this); // Τοποθέτηση των συστατικών σε κατάλληλη θέση στον ενδιάµεσο υποδοχέα getcontentpane().add(slide,borderlayout.north); getcontentpane().add(slide1,borderlayout.center); getcontentpane().add(textfield,borderlayout.south); // Χειρισµός συµβάντων της αλλαγής τιµής των µηχανισµών ολίσθησης public void statechanged(changeevent e){ if(slide==e.getsource()) { x=slide.getvalue(); textfield.settext(string.valueof(x+y)); if(slide1==e.getsource()) { y=slide1.getvalue(); textfield.settext(string.valueof(x+y)); Παράδειγµα 12.4 AppSlider.java (2 από 2) <APPLET CODE= AppSlider.class WIDTH=350 HEIGHT=150> </APPLET> Παράδειγµα 12.4 appsliderviewer.html 173

18 Συστατικά κειµένου Τα συστατικά κειµένου εµφανίζουν κείµενο το οποίο µπορεί ο χρήστης επιλεκτικά να το αλλάξει. Η υπερκλάση των συστατικών κειµένου είναι η JTextComponent του πακέτου javax.swing.text. Τα πιο σηµαντικά συστατικά κειµένου δηµιουργούνται από τις κλάσεις JTextArea, JTextField, JPasswordField. Οι κλάσεις JTextArea και JTextField κληρονοµούν απευθείας την JTextComponent, ενώ η JPasswordField κληρονοµεί την JTextField. Τα πεδία κειµένου υλοποιούνται από τις κλάσεις JTextField και JPasswordField. Έχουν µόνο µια γραµµή κειµένου. Η κλάση JTextField, αντίθετα µε την αντίστοιχη κλάση της στο AWT (TextField), δεν µπορεί να αποκρύψει χαρακτήρες. Για την δουλειά αυτή είναι υπεύθυνη η κλάση JPasswordField. Οι περιοχές κειµένου υλοποιούνται µε την κλάση JTextArea. Η κλάση αυτή µπορεί να εµφανίζει πολλές γραµµές. Οι δηµιουργοί των παραπάνω συστατικών κειµένου είναι: JTextField(): ηµιουργεί ένα κενό αντικείµενο της κλάσης JTextField. JTextField(String str): ηµιουργεί ένα πεδίο κειµένου µε το περιεχόµενο του ορίσµατος str. JTextField(String str, int x): ηµιουργεί ένα πεδίο κειµένου µε το περιεχόµενο του ορίσµατος str και µέγεθος x στήλες. JPasswordField(String str): ηµιουργεί ένα οµότυπο της JPasswordField µε κείµενο str. JPasswordField(String str, int x): ηµιουργεί ένα οµότυπο της JPasswordField µε κείµενο str και µέγεθος x στήλες. JTextArea(int x, int y): ηµιουργεί µια κενή περιοχή κειµένου µε x, y σειρές και στήλες αντίστοιχα. JTextArea(String str): ηµιουργεί µια περιοχή κειµένου µε κείµενο str. JTextArea(String str, int x, int y): ηµιουργεί µια περιοχή κειµένου µε x, y σειρές, στήλες και κείµενο str. Μέθοδοι της κλάσης JTextComponent που κληρονοµούνται από τις υποκλάσεις της είναι: gettext(): Επιστρέφει το κείµενο ενός συστατικού κειµένου. replaceselection(string str): Αντικαθιστά το επιλεγµένο κείµενο ενός συστατικού µε το περιεχόµενο του ορίσµατος str. seteditable(boolean bl): Αν το όρισµα bl είναι true τότε το κείµενο του συστατικού µπορεί να αλλάξει. setenabled(boolean bl): Ενεργοποιεί ή απενεργοποιεί το συστατικό κειµένου ανάλογα µε την τιµή του ορίσµατος bl. settext(string str): Θέτει το περιεχόµενο του συστατικού 174

19 κειµένου. Χρήσιµες µέθοδοι της κλάσης JTextField είναι: addactionlistener(actionlistener): Συσχετίζει ένα πεδίο κειµένου µε τον ακροατή συµβάντων ActionListener. Η µοναδική µέθοδος του ακροατή συµβάντων είναι η actionperformed(actionevent e). setcolumns(int x): Θέτει σε x τον αριθµό των στηλών του πεδίου κειµένου. Χρήσιµες µέθοδοι της κλάσης JPasswordField είναι: getpassword(): Επιστρέφει έναν πίνακα τύπου char µε το κείµενο του JPasswordField. setechochar(char c): Θέτει σε c τον χαρακτήρα που θα εµφανίζεται στο πεδίο κειµένου, οτιδήποτε και αν πληκτρολογεί ο χρήστης. Χρήσιµες µέθοδοι της κλάσης JTextArea είναι: replacerange(string str, int x, int y): Αντικαθιστά το κείµενο από την θέση x έως την θέση y µε το κείµενο str. setcolumns(int x): Θέτει σε x τον αριθµό των στηλών της περιοχής κειµένου. setrows(int x): Θέτει σε x τον αριθµό των σειρών της περιοχής κειµένου. Στο παρακάτω πρόγραµµα υπάρχουν δύο πεδία κειµένου, δύο κουµπιά και µια περιοχή κειµένου. Το πρώτο πεδίο κειµένου χρησιµοποιείται για το όνοµα του χρήστη, ενώ το δεύτερο για τον κωδικό του. Το κουµπί µε τίτλο submit χρησιµοποιείται για να συγκρίνει τα δεδοµένα που υπάρχουν στα πεδία µε τα σωστά και, ανάλογα µε την ορθότητα τους, επιστρέφει κάποιο µήνυµα στην περιοχή κειµένου. Στο συγκεκριµένο πρόγραµµα οι µόνες σωστές τιµές είναι username για το όνοµα του χρήστη και kodikos για τον κωδικό του χρήστη. Ό,τι κείµενο εισάγεται στο πεδίο για τον κωδικό εµφανίζεται µε αστεράκια. Η εντολή JTextArea1.setLineWrap(true) κάνει το κείµενο να αλλάξει σειρά όταν γεµίσει αυτήν που είναι. Η µέθοδος setactioncommand(string str) θέτει ένα όνοµα εντολής σε ένα συστατικό για γεγονότα που θα συµβούν από αυτό. Αντίθετα, η getactioncommand() παίρνει το όνοµα της εντολής. 175

20 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class AppJText extends JApplet implements ActionListener { JTextField text1; JLabel JLabel1; JLabel JLabel2; JPasswordField text2; JButton JButton1; JButton JButton2; JTextArea JTextArea1; public void init() { getcontentpane().setlayout(null); getcontentpane().setbounds(0,0,260,210); text1=new JTextField("username"); JLabel1= new JLabel("Ονοµα χρήστη"); JLabel2=new JLabel("Κωδικός χρήστη"); text2=new JPasswordField("kodikos"); text2.setechochar('*'); JButton1=new JButton("Submit"); JButton2=new JButton("Clear"); JTextArea1=new JTextArea(); JTextArea1.setLineWrap(true); getcontentpane().add(text1); text1.setbounds(110,12,121,24); getcontentpane().add(jlabel1); JLabel1.setBounds(12,12,95,26); getcontentpane().add(jlabel2); JLabel2.setBounds(12,48,100,21); getcontentpane().add(text2); text2.setbounds(110,48,120,24); JButton1.setActionCommand("ok"); JButton1.addActionListener(this); getcontentpane().add(jbutton1); JButton1.setBounds(48,96,76,27); JButton2.setActionCommand("clear"); JButton2.addActionListener(this); getcontentpane().add(jbutton2); JButton2.setBounds(144,96,79,26); getcontentpane().add(jtextarea1); JTextArea1.setBounds(12,132,240,72); Παράδειγµα 12.5 AppJText.java (1 από 2) 176

21 /* Στην µέθοδο χειρισµού συµβάντων συγκρίνονται τα ονόµατα εντολής γεγονότων των δύο κουµπιών. Αν το κουµπί που επιλέχθηκε είναι ίσο µε την ετικέτα clear τότε καθαρίζονται τα πεδία κειµένου, διαφορετικά συγκρίνονται οι τιµές των πεδίων µε τις προεπιλεγµένες τιµές username και kodikos. */ public void actionperformed(actionevent e){ String s=e.getactioncommand(); if (s.equals("ok")) { if(text1.gettext().equals("")) { JTextArea1.setText("To πεδίο όνοµα χρήστη είναι κενό. Παρακαλώ συµπληρώστε το."); text2.settext(""); else { if(text1.gettext().equals("username")) { if(string.valueof(text2.getpassword()).equals("kodikos")) JTextArea1.setText("Το όνοµα του χρήστη και ο κωδικός είναι έγκυρα."); else { JTextArea1.setText("Ο κωδικός είναι λάθος, παρακαλώ προσπαθήστε ξανά."); text2.settext(""); else JTextArea1.setText("Το όνοµα του χρήστη είναι λανθασµένο. Παρακαλώ προσπαθήστε ξανά."); if (s.equals("clear")) { text1.settext(""); text2.settext(""); Παράδειγµα 12.5 AppJText.java (2 από 2) <APPLET CODE="AppJText.class" WIDTH=260 HEIGHT=210> </APPLET> 177

22 έντρο (κλάση JTree) Σε ένα δέντρο τα δεδοµένα εµφανίζονται ιεραρχικά, όπως τα περιεχόµενα του σκληρού δίσκου µε τον windows explorer στο λειτουργικό σύστηµα Windows98. Ένα δέντρο δηµιουργείται από την κλάση JTree. Ένα αντικείµενο της JTree δεν περιέχει πραγµατικά τα δεδοµένα, αλλά περιέχει µια άποψη από αυτά. Ο προσανατολισµός του συστατικού JTree (δέντρο) συνήθως είναι κάθετος. Κάθε σειρά από αυτό το συστατικό περιέχει ένα στοιχείο δεδοµένων που καλείται κόµβος. Κάθε δέντρο έχει µια ρίζα κόµβου από όπου όλοι οι απόγονοι κόµβοι εξαρτώνται. Προεπιλεγµένα, τα δέντρα εµφανίζουν την ρίζα κόµβου. Οι κόµβοι που εξαρτώνται από έναν άλλο κόµβο είναι παιδιά του κόµβου αυτού ο οποίος λέγεται κλάδος (branch node), ή πατέρας τους. Οι κόµβοι που δεν έχουν απογόνους λέγονται φύλλα (leaf). Η λειτουργία ενός αντικειµένου της κλάσης JTree είναι απλή. Κάνοντας διπλό κλικ σε ένα κόµβο εµφανίζονται οι επόµενοι κόµβοι της ιεραρχίας. Αν γίνει πάλι διπλό κλικ στον ίδιο κόµβο οι απόγονοι του κόµβοι σταµατούν να είναι ορατοί. Σε ένα αντικείµενο της κλάσης JTree η ρίζα του και οι υπόλοιποι κόµβοι προστίθενται µε την κλάση DefaultMutableTreeNode. Οι κόµβοι προστίθενται σε άλλους κόµβους µε την µέθοδο add( ). Για την ρίζα, τους κλάδους και τα φύλλα υπάρχουν προεπιλεγµένα εικονίδια δίπλα στους κόµβους. Κάθε φορά που γίνεται δίπλο κλικ σε ένα κλάδο αυτός αλλάζει εικονίδιο ανάλογα αν κρύβει ή εµφανίζει τους απογόνους του. Η κλάση που αλλάζει τα προεπιλεγµένα εικονίδια είναι η DefaultTreeCellRenderer. Οι µέθοδοι της κλάσης αυτής είναι οι setleaficon(icon i), setopenicon(icon i), setclosedicon(icon i) που θέτουν τα εικονίδια σε ένα φύλλο, σε έναν κλάδο που εκτείνεται και σε έναν κλάδο που συρρικνώνεται αντίστοιχα. Η µέθοδος που ενεργοποιεί την αλλαγή εικονιδίων στο δέντρο είναι η setcellrender(defaulttreecellrenderer d). Οι δηµιουργοί των κλάσεων JTree και DefaultMutableTreeNode είναι: JTree(TreeNode tree): ηµιουργεί ένα δέντρο και σαν ρίζα έχει ένα αντικείµενο την κλάσης TreeNode. Η κλάση DefaultMutableTreeNode υλοποιεί τη διασύνδεση MutableTreeNode, η οποία κληρονοµεί τη διασύνδεση TreeNode. DefaultMutableTreeNode(Object obj): ηµιουργεί ένα κόµβο δέντρου. Χρήσιµες µέθοδοι των παραπάνω κλάσεων είναι: Για την JTree: addtreeselectionlistener(treeselectionlistener tree): Προσθέτει τον ακροατή συµβάντων TreeSelectionListener που είναι υπεύθυνος για την επιλογή ενός κόµβου. getlastselectedpathcomponent(): Επιστρέφει τον τελευταία επιλεγµένο κόµβο. Ο τύπος επιστροφής είναι Object. 178

23 getselectionmode(): Η µέθοδος αυτή ανήκει στην κλάση ThreeSelectionModel και επιστρέφει ένα ακέραιο. Η τιµές του ακέραιου µπορεί να είναι SINGLE_TREE_SELECTION και CONTIGUOUS_THREE_SELECION. Η πρώτη τιµή επιτρέπει µόνο την επιλογή ενός κόµβου ενώ η δεύτερη την πολλαπλή επιλογή. getselectionmodel(): Επιστρέφει το µοντέλο (TreeSelectionModel) που είναι υπεύθυνο για τον έλεγχο της επιλογής των κόµβων. getselectionpath(): Επιστρέφει τον κατάλογο του πρώτου επιλεγµένου κόµβου. getselectionpaths(): Επιστρέφει τους καταλόγους των επιλεγµένων κόµβων. setselectionmode(int x): Είναι η αντίθετη της µεθόδου getselectionmode(). setselectionmodel(treeselectionmodel tree): Θέτει το µοντέλο που είναι υπεύθυνο για τον έλεγχο της επιλογής των κόµβων. setselectionpath(threepath tree): Θέτει τον κατάλογο tree σε έναν κόµβο. setselectionpaths(threepath[] tree): Θέτει τον πίνακα καταλόγων tree σε ορισµένους κόµβους. Για την DefaultMutableTreeNode getparent(): Επιστρέφει τον πατρικό κόµβο ενός κόµβου. getroot(): Επιστρέφει την ρίζα του δέντρου. isleaf(): Επιστρέφει την τιµή true αν ο κόµβος είναι φύλλο Ενδιάµεσοι υποδοχείς (Intermediate Containers) Σε αυτή την ενότητα θα αναλυθούν οι ενδιάµεσοι υποδοχείς στους οποίους τοποθετούνται όλα τα συστατικά. Οι υποδοχείς που θα σχολιασθούν είναι οι πάνελ, πάνελ κύλισης, πάνελ καρτέλλας και µπάρα εργαλείων Πάνελ (κλάση JPanel) Η κλάση JPanel είναι ο πιο ευέλικτος και ο πιο συχνά χρησιµοποιούµενος ενδιάµεσος υποδοχέας. Η JPanel µπορεί να χρησιµοποιήσει οποιονδήποτε διαχειριστή διάταξης. Προεπιλεγµένα, η JPanel δεν χρωµατίζει τίποτα εκτός από το παρασκήνιο (background) και έχει σαν διαχειριστή διάταξης την διάταξη ροής (κλάση FlowLayout). Οι βασικοί δηµιουργοί της κλάσης JPanel είναι: 179

24 JPanel(): ηµιουργεί ένα αντικείµενο της κλάσης JPanel. JPanel(LayoutManager layout): ηµιουργεί ένα αντικείµενο της κλάσης JPanel µε διαχειριστή διάταξης το αντικείµενο layout. Τα συστατικά προστίθενται στον ενδιαµέσο υποδοχέα µε την µέθοδο add( ). Μέσα στην µέθοδο αυτή µπορεί να προσδιοριστεί και ο προσανατολισµός των συστατικών. Παράδειγµα... JButton button=new JButton(); pane.add(button,borderlayout.north); Η µέθοδος setlayout(layoutmanaget layout) θέτει τον διαχειριστή διάταξης σε ένα οµότυπο της JPanel. Ένα αντικείµενο της κλάσης JPanel όταν δηµιουργείται είναι αδιαφανές. Για να γίνει διαφανές χρησιµοποιείται η µέθοδος setopaque(boolean bl) µε τιµή ορίσµατος false Πάνελ κύλισης (κλάση JScrollPane) Ο ενδιάµεσος υποδοχέας κύλισης υλοποιείται µε την κλάση JScrollPane. Χρησιµοποιείται όταν ένα συστατικό που θέλουµε να βάλουµε σε ένα πρόγραµµα καταλαµβάνει περισσότερη από την προσφερόµενη επιφάνεια. Ένα αντικείµενο της κλάσης JScrollPane έχει µπάρες κύλισης στις άκρες του και έτσι είναι δυνατή η εµφάνιση όλων των σηµείων του συστατικού που περικλείει. Βασικά η JScrollPane αποτελείται από τα στοιχεία δύο κλάσεων της JScrollBar και της JViewport. Η κλάση JViewport είναι υπεύθυνη για το τι εµφανίζεται στην οθόνη όταν µετακινούνται οι λίστες κύλισης. Οι δηµιουργοί της κλάσης JScrollPane είναι: JScrollPane(): ηµιουργεί ένα άδειο αντικείµενο της κλάσης JScrollPane µε τις κυλιόµενες µπάρες να εµφανίζονται όταν χρειάζονται. JScrollPane(int x, int y): ηµιουργεί ένα άδειο αντικείµενο της κλάσης JScrollPane όπου µε x, y ορίζεται η κατάσταση των µπαρών. Το όρισµα x αναφέρεται στην οριζόντια µπάρα και µπορεί να πάρει τις τιµές HORIZONTAL_SCROLLBAR_ALWAYS,HORIZONTAL_SCROLL_NEVER, 180

25 Χρήσιµες µέθοδοι είναι : HORIZONTAL_SCROLLBAR_AS_NEEDED που αντιστοιχούν στην εµφάνιση της µπάρας, πάντα, όταν χρειάζεται και ποτέ αντίστοιχα. Τα ίδια ισχύουν και για το όρισµα y που ισχύει για τον κατακόρυφο άξονα, στην θέση όµως της λέξης HORIZONTAL µπαίνει η VERTICAL. gethorizontalscrollbarpolicy(): Επιστρέφει έναν ακέραιο µε την τρέχουσα κατάσταση της οριζόντιας µπάρας. getverticalscrollbarpolicy(): Επιστρέφει έναν ακέραιο µε την τρέχουσα κατάσταση της κάθετης µπάρας. getviewport(): Επιστρέφει ένα αντικείµενο JViewport. ηλαδή ό,τι µπορεί να µετακινείται από τις µπάρες κύλισης. sethorizontalscrollbarpolicy(int x): Το όρισµα x θέτει την κατάσταση της οριζόντιας µπάρας. setlayout(layoutmanager layout): Θέτει τον διαχειριστή διάταξης. setverticalscrollbarpolicy(int x): Το όρισµα x θέτει την κατάσταση της κάθετης µπάρας. Οι πιθανές τιµές του x είναι VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_NEVER για εµφάνιση της µπάρας όταν χρειάζεται, πάντοτε και ποτέ αντίστοιχα. Στο παρακάτω παράδειγµα ορίζεται ένα πάνελ κύλισης πάνω στο οποίο προστίθεται µια περιοχή κειµένου είκοσι γραµµών και πενήντα στηλών. Επειδή η περιοχή κειµένου είναι µεγαλύτερη σε µέγεθος από το αντικείµενο της κλάσης JScrollPane (το οποίο έχει µέγεθος 300x100 pixels), όταν εκτελείται το πρόγραµµα εµφανίζονται οι µπάρες κύλισης σε αυτό. Η περιοχή κειµένου προστίθεται στο πάνελ κύλισης µε την εντολή scrollpane.getviewport().add(textarea). import java.awt.*; import javax.swing.*; public class AppJScrollPane extends Japplet { JScrollPane scrollpane; JTextArea textarea; public void init() { scrollpane=new JScrollPane(); textarea=new JTextArea(20,50); getcontentpane().add(scrollpane); scrollpane.setbounds(0,0,300,100); scrollpane.getviewport().add(textarea); Παράδειγµα 12.6 AppJScrollPane.java 181

26 <APPLET CODE = "AppJScrollPane.class" WIDTH = 300 HEIGHT= 100> </APPLET> Παράδειγµα 12.6 appjscrollpaneviewer.html Tabbed Pane (κλάση JTabbedPane) Με την κλάση JΤabbedPane διαφορετικά συστατικά µοιράζονται τον ίδιο χώρο. Ο χρήστης µπορεί να επιλέξει το επιθυµητό συστατικό επιλέγοντας την κατάλληλη καρτέλα tab. ηλαδή, ανάλογα µε το πόσα tabs έχει το αντικείµενό της JΤabbedPane είναι σαν να υπάρχουν τόσες διαφορετικές επιφάνειες οι οποίες µπορούν να εναλλάσσονται. Οι δηµιουργοί της JTabbedPane είναι: JTabbedPane(): ηµιουργεί ένα άδειο αντικείµενο της κλάσης JTabbedPane. JTabbedPane(int x): ηµιουργεί ένα αντικείµενο της κλάσης JTabbedPane όπου τα tabs έχουν τον προσανατολισµό του ορίσµατος x. To x µπορεί να πάρει τις τιµές TOP, BOTTOM, LEFT, RIGHT. Χρήσιµες µέθοδοι της JTabbedPane είναι: add(string str, Component c): Προσθέτει ένα συστατικό c σε µια καρτέλα tab µε τίτλο str. getselectedindex(): Επιστρέφει µια ακέραια τιµή που δείχνει πιο tab είναι επιλεγµένο. setselectedindex(int x): Θέτει ποίο tab θα είναι επιλεγµένο. Ένα σηµείο προσοχής είναι ότι σε κάθε tab µπορεί να υπάρχει µόνο ένα συστατικό το οποίο και καταλαµβάνει όλο το χώρο. Για να οριστούν περισσότερα συστατικά σε ένα tab αυτά πρέπει να προστεθούν σε ένα αντικείµενο της κλάσης JPanel και µετά αυτό το αντικείµενο να προστεθεί στο συγκεκριµένο tab. Στο ακόλουθο πρόγραµµα ο ενδιάµεσος υποδοχέας είναι ένα αντικείµενο της κλάσης JΤabbedPane µε τρία tabs. Στο πρώτο και στο δεύτερο tab υπάρχει από µία περιοχή κειµένου. Στο τρίτο tab υπάρχει ένα αντικείµενο της κλάσης JPanel το οποίο περιέχει τρία συστατικά, δύο κουµπιά και µια περιοχή κειµένου. Το τρίτο tab γίνεται προεπιλεγµένο µε την εντολή tabbed1.setselectedindex(2). Όπως φαίνεται η αρίθµηση των tabs αρχίζει από τον αριθµό µηδέν. 182

27 import java.awt.*; import javax.swing.*; public class AppJTabbed extends JApplet { JTabbedPane tabbed1; JPanel pane; JTextArea textarea1; JTextArea textarea2; JTextField textfield1; JButton button1; JButton button2; public void init() { tabbed1=new JTabbedPane(); pane=new JPanel(); textarea1=new JTextArea(); textarea2=new JTextArea(); textfield1=new JTextField(); textarea1.setlinewrap(true); textarea2.setlinewrap(true); button1=new JButton("Button"); button2=new JButton("Button2"); getcontentpane().setlayout(null); getcontentpane().add(tabbed1); tabbed1.setbounds(0,0,300,100); tabbed1.add("first tab",textarea1); tabbed1.add("second tab",textarea2); pane.setlayout(new GridLayout(2,2)); tabbed1.add("third tab",pane); pane.add(button1); pane.add(button2); pane.add(textfield1); tabbed1.setselectedindex(2); Παράδειγµα 12.7 AppJTabbed.java <APPLET CODE="AppJTabbed.class" WIDTH=300 HEIGHT=100> </APPLET> Παράδειγµα 12.7 appjtabbedviewer.html 183

28 Μπάρα εργαλείων (κλάση JToolBar) Η µπάρα εργαλείων είναι µια µπάρα που µπορεί να περιέχει περισσότερα από ένα συστατικά. Συνήθως περιέχει κουµπιά και µπορεί να είναι γραµµή ή στήλη. Ο χρήστης µπορεί να µετακινήσει τις µπάρες εργαλείων σε οποία πλευρά του προγράµµατος θέλει, ακόµα και εκτός της επιφάνειας του προγράµµατος. Η µπάρα εργαλείων υλοποιείται µε την κλάση JToolBar. Για να γίνεται σωστά η µετακίνηση της µπάρας πρέπει αυτή να βρίσκεται σε υποδοχέα που χρησιµοποιεί τον διαχειριστή διάταξης BorderLayout. Οι δηµιουργοί της JΤoolBar είναι: JToolBar(): ηµιουργεί µια µπάρα εργαλείων. JToolBar(int x): ηµιουργεί µια µπάρα εργαλείων µε προσανατολισµό που δίνεται από το όρισµα x που µπορεί να πάρει τις τιµές HORIZONTAL, VERTICAL. Χρήσιµες µέθοδοι είναι: addseperator(): Επισυνάπτει ένα προεπιλεγµένο διαχωριστή στο τέλος της µπάρας εργαλείων. getorientation(): Επιστρέφει έναν ακέραιο που δείχνει τον προσανατολισµό της µπάρας εργαλείων. setorientation(int x): Θέτει τον προσανατολισµό της µπάρας εργαλείων µε το όρισµα x το οποίο µπορεί να πάρει τις τιµές HORIZONTAL, VERTICAL Κύριοι υποδοχείς (Top-level container) Η βάση των προγραµµάτων GUI µε Swing είναι οι κύριοι υποδοχείς. Πάνω σε αυτούς µπαίνουν οι ενδιάµεσοι υποδοχείς µε τα συστατικά. Οι κλάσεις των κύριων υποδοχών είναι οι JFrame, JDialog, JApplet. Οι κύριοι υποδοχείς έχουν την δυνατότητα να περιέχουν και άλλους κύριους υποδοχείς. Οι κύριοι υποδοχείς έχουν, προεπιλεγµένα, έναν ενδιάµεσο υποδοχέα όταν ορίζονται. ηλαδή, µπορεί σε ένα πρόγραµµα να χρησιµοποιηθεί κατευθείαν η µέθοδος getcontentpane().add(component c) χωρίς να έχει προηγηθεί η µέθοδος που θέτει ένα ενδιάµεσο υποδοχέα (setcontentpane( )). Στην περίπτωση που επιθυµούµε την ακριβή τοποθέτηση των συστατικών σε έναν ενδιάµεσο υποδοχέα µε την µέθοδο setbounds(...) πρέπει πρώτα να απενεργοποιούµε τον προεπιλεγµένο διαχειριστή διάταξης του, διαφορετικά δεν θα αποδίδεται σωστά το αποτέλεσµα. Η απενεργοποίηση των διαχειριστών διάταξης γίνεται µε την εντολή getcontentpane().setlayout(null). 184

29 Πλαίσια (JFrame) Τα πλαίσια στο Swing υλοποιούνται µε την κλάση JFrame. Ένα αντικείµενο της JFrame έχει περιθώρια, τίτλο και κουµπιά για το κλείσιµο, την ελαχιστοποίηση και µεγιστοποίηση του παραθύρου. ηµιουργοί της κλάσης JFrame είναι: JFrame(): ηµιουργεί ένα πλαίσιο το οποίο είναι αόρατο. JFrame(String str): ηµιουργεί ένα αόρατο πλαίσιο µε τίτλο str. Η µέθοδος setvisible(boolean bl) είναι υπεύθυνη για την εµφάνιση ή µη ενός πλαισίου. Η setsize(int x, int y) θέτει σε x, y pixels το µέγεθος του πλαισίου. Τέλος, η µέθοδος settitle(string str) θέτει σε str τον τίτλο ενός πλαισίου Παράθυρα διαλόγου (κλάσεις JDialog, JOptionPane) Τα παράθυρα διαλόγου υλοποιούνται από τις κλάσεις JDialog και JOptionPane. Κάθε παράθυρο διαλόγου εξαρτάται από ένα πλαίσιο. Έτσι όταν τερµατίζεται ένα πλαίσιο το ίδιο συµβαίνει και για το παράθυρο διαλόγου που εξαρτάται από αυτό. Το παράθυρο διαλόγου που υλοποιείται από την κλάση JOptionPane είναι αποκλειστικό, ενώ της JDialog µπορεί να µην είναι αποκλειστικό. Αυτό σηµαίνει ότι σε ένα πρόγραµµα τα παράθυρα πίσω από το αποκλειστικό παράθυρο αγνοούνται µέχρι αυτό να κλείσει. Η JDialog είναι δευτερεύουσα της Dialog και η JOptionPane είναι δευτερεύουσα της JComponent. Η κλάση JOptionPane παρέχει υποστήριξη για τυποποιηµένα παράθυρα διαλόγου που περιέχουν εικονίδιο, τίτλο και κείµενο. Τα πρότυπα εικονίδιά της αντιστοιχούν στις περιπτώσεις ερώτησης, ενηµέρωσης, προειδοποίησης, λάθους και είναι τα ακόλουθα. ερώτηση πληροφορία προειδοποίηση λάθος Τα αποκλειστικά παράθυρα διαλόγου της JOptionPane υλοποιούνται µε µια από τις µεθόδους showmessagedialog, showoptiondialog, showconfirmdialog και 185

30 showinputdialog. Η πρώτη µέθοδος εµφανίζει µόνο ένα κουµπί (σε ένα παράθυρο διαλόγου) µε κείµενο OK. Εύκολα καθορίζονται σε αυτήν το εικονίδιο, το µήνυµα και ο τίτλος του παραθύρου. showmessagedialog(component c, Obgect obj, String str, int x): To όρισµα c καθορίζει το πλαίσιο από το οποίο εξαρτάται αυτό το παράθυρο. To όρισµα obj καθορίζει το µήνυµα του παραθύρου, η µεταβλητή str ορίζει τον τίτλο του παραθύρου και τέλος ο ακέραιος x εµφανίζει ένα από τα παραπάνω εικονίδια. Ο x µπορεί να πάρει τις τιµές ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE. Ο κώδικας του παραπάνω στιγµιότυπου είναι: JOptionPane pane=new JOptionPane(); pane.showmessagedialog(frame, "The message dialog program", "Dialog", JOptionPane.INFORMATION_MESSAGE); Η µέθοδος showoptiondialog έχει αυξηµένη λειτουργικότητα σε σχέση µε την προηγούµενη µέθοδο. H σύνταξη της είναι: showoptiondialog(component c, Object obj, String str, int x, int y, Icon icon, Object[] obj1, Object obj2): Το όρισµα c είναι το πλαίσιο από το οποίο εξαρτάται το παράθυρο. Τα ορίσµατα οbj, str είναι το κείµενο και ο τίτλος του παραθύρου. Ο ακέραιος x µπορεί να πάρει τις τιµές YES_NO_OPTION, YES_NO_CANCEL_OPTION. Στην πρώτη περίπτωση εµφανίζονται δύο κουµπιά µε κείµενο YES, NO, ενώ στην δεύτερη τρία µε κείµενο YES, NO, CANCEL. Το όρισµα y είναι υπεύθυνο για το πρότυπο εικονίδιο που εµφανίζεται στο παράθυρο, ενώ η µεταβλητή icon εµφανίζει ένα εικονίδιο της αρεσκείας µας. Ο πίνακας obj1 περιέχει το κείµενο των κουµπιών που θα εµφανιστούν (υπερβαίνοντας τις προεπιλεγµένες τιµές) και η µεταβλητή obj2 θέτει το επιλεγµένο κουµπί. Η µέθοδος αυτή επιστρέφει έναν ακέραιο που δείχνει το κουµπί που επιλέχτηκε. 186

31 Ο κώδικας του παραπάνω στιγµιότυπου είναι: Object[] obj1={"yes, please", "No, thanks"; optionpane.showoptiondialog(this, "The option dialog program", "Dialog", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, null, obj1, obj1[0]); Η µέθοδος showconfirmdialog µοιάζει αρκετά µε την παραπάνω µέθοδο και έχει σύνταξη: showconfirmdialog(component c, Object obj, String str, int x, int y): Τα ορίσµατα c, obj, str είναι για το πλαίσιο το κείµενο και τον τίτλο του παραθύρου αντίστοιχα. Το όρισµα x µπορεί να πάρει τις τιµές YES_NO_OPTION και YES_NO_CANCEL_OPTION. Η µεταβλητή y δείχνει κάποιο από το πρότυπα εικονίδια. Η µέθοδος επιστρέφει έναν ακέραιο που δείχνει ποιο κουµπί επιλέχτηκε. Ο κώδικας του παραπάνω στιγµιότυπου είναι: optionpane.showconfirmdialog(frame, "The confirm dialog program", "Dialog", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); 187

32 Η µέθοδος showinputdialog ζητάει από τον χρήστη να θέσει ένα κείµενο στο πεδίο κειµένου που εµφανίζει. Η σύνταξη της είναι: showinputdialog(component c, Object o, String str, int x): Τα ορίσµατα είναι ίδια µε τις προηγούµενες µεθόδους. Η µέθοδος αυτή επιστρέφει ένα String που είναι αυτό που εισάγει ο χρήστης. Ο κώδικας του παραπάνω στιγµιότυπου είναι: optionpane.showinputdialog(this, "The input dialog program", "Dialog", JOptionPane.QUESTION_MESSAGE); Μικροεφαρµογές (κλάση JApplet) Η κλάση JApplet είναι δευτερεύουσα κλάση της Applet και χρησιµοποιείται στην δηµιουργία µικροεφαρµογών. Με τον ίδιο τρόπο που δηµιουργείται µια µικροεφαρµογή µε την κλάση Applet, δηµιουργείται και µε την κλάση JApplet. ηλαδή, χρησιµοποιούνται οι µέθοδοι της κλάσης Applet init(), start(), stop(), destroy(), paint(). Ο προεπιλεγµένος διαχειριστής διάταξης του ενδιάµεσου υποδοχέα της κλάσης JApplet είναι ο BorderLayout Εµφάνιση και αίσθηση (Look and feel) Η εµφάνιση και η αίσθηση έχουν σχέση µε την απεικόνιση του προγράµµατος. ίνει την δυνατότητα σε ένα πρόγραµµα να έχει την εµφάνιση και την αίσθηση του συστήµατος. ηλαδή, κάποιος που χρησιµοποιεί τα λειτουργικά συστήµατα Windows98 ή Unix µπορεί να έχει στο πρόγραµµα του στην Java, το στυλ των Windows98 ή Unix αντίστοιχα. Επιπλέον, µπορεί το πρόγραµµα να έχει την αίσθηση και εµφάνιση του Swing, που ονοµάζεται Metal. Υπεύθυνη για την εµφάνιση και αίσθηση ενός προγράµµατος είναι η κλάση UIManager του πακέτου javax.swing. Η επιλογή της εµφάνισης και της αίσθησης ενός προγράµµατος επιλέγεται µε την µέθοδο setlookandfeel( ) της UIManager. ύο από τα ορίσµατα της 188

33 setlookandfeel( ) είναι οι παρακάτω µέθοδοι: getcrossplatformlookandfeelclassname(): Επιστρέφει την εµφάνιση και την αίσθηση Metal. getsystemlookandfeelclassname(): Επιστρέφει την εµφάνιση και την αίσθηση του συστήµατος. Η µέθοδος setlookandfeel( ) µπορεί να προκαλέσει την εξαίρεση UnsupportedLookAndFellException. Εν κατακλείδι ο κώδικας που θέτει την αίσθηση και την εµφάνιση ενός προγράµµατος είναι: try{ UIManager.setLookAndFeel(...); catch(exception e){ System.out.println( Error +e); Ακολούθως υπάρχουν δύο στιγµιότυπα του ίδιου προγράµµατος, το πρώτο µε αίσθηση και εµφάνιση Metal και το δεύτερο µε Windows98. Windows Look and Feel Metal Look and Feel (default) 189

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #18

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #18 Week 12: GUIs with Swing Προγραμματισμός ΓΠΕ: ανασκόπηση Εισαγόμενα πακέτα Java Διαλεξη #18: Γραφικά Περιβάλλοντα Επικοινωνίας Java με Swing «Στήσιμο»του αυτόνομου παράθυρου [frame] Συστατικά [components]

Διαβάστε περισσότερα

Week 12: GUIs with Swing

Week 12: GUIs with Swing Week 12: GUIs with Swing Προγραµµατισµός ΓΠΕ: ανασκόπηση Εισαγόµενα πακέτα Java Εβδοµάδα 12: Γραφικά Περιβάλλοντα Επικοινωνίας Java µε Swing «Στήσιµο»του αυτόνοµου παράθυρου [frame] Συστατικά [components]

Διαβάστε περισσότερα

Μέρος ΙΙ Εφαρμογές γραφικών με το πακέτο swing - 5. Περιεχόμενα

Μέρος ΙΙ Εφαρμογές γραφικών με το πακέτο swing - 5. Περιεχόμενα Μέρος ΙΙ Εφαρμογές γραφικών με το πακέτο swing - 5 Περιεχόμενα 1 Βασικές Έννοιες σε Εφαρμογές με Γραφικά... 12 1.1 Οι συνιστώσες τηs Java... 12 1.2 Tα πακέτα για συνιστώσες.... 12 1.3 Η κλάσεις στο πακέτο

Διαβάστε περισσότερα

ημιουργία Γραφικού Περιβάλλοντος

ημιουργία Γραφικού Περιβάλλοντος Γραφικό Περιβάλλον Χρήστη. Πλαίσια και παράθυρα. Κουμπιά. Ετικέτες και πεδία κειμένου. Πλαίσια ελέγχου. Σύνθετα πλαίσια. Περιοχές κειμένου. Πάνελς. Διαχειριστές Διάταξης. Απόκριση σε δεδομένα που εισάγει

Διαβάστε περισσότερα

Week 10: Graphical User Interfaces

Week 10: Graphical User Interfaces Week 10: Graphical User Interfaces Έννοιες του προγραµµατισµού ΓΠΕ [GUI] Εβδοµάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα Επικοινωνίας [Graphical User Interfaces] Συστατικά [components] ιάταξη [layout] [event-driven

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #17

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #17 Week 10: Graphical User Interfaces Έννοιες του προγραμματισμού ΓΠΕ [GUI] Διάλεξη #17: Εισαγωγή στα Γραφικά Περιβάλλοντα Επικοινωνίας [Graphical User Interfaces] Συστατικά [components] Διάταξη [layout]

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Swing Τα GUIs (Graphical User Interfaces) είναι τα συνηθισμένα interfaces που χρησιμοποιούν παράθυρα, κουμπιά, menus,

Διαβάστε περισσότερα

ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ- SWING (1)

ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ- SWING (1) ΓΡΑΦΙΚΕΣ ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ- SWING (1) Πλεονεκτήματα έναντι του awt Περισσότερα συστατικά Επεκτεταμένα χαρακτηριστικά συστατικών Καλύτερη εμφάνιση και αίσθηση Καλύτερος χειρισμός συμβάντων Πιο συμβατά προγράμματα

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 8: Java Swing Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Swing Τα GUIs (Graphical User Interfaces) είναι τα συνηθισμένα interfaces που χρησιμοποιούν παράθυρα, κουμπιά, menus,

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ GUI AWT ΚΑΙ SWING Βασικά στοιχεία ενός GUI Ένα Graphical User Interface-GUI (στα ελληνικά Γραφική Διεπαφή με το Χρήστη) είναι το μέρος του

Διαβάστε περισσότερα

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Το JList είναι ένα από τα τρία συστατικά (JComboBox, JSpinner) που χρησιμοποιούνται στη Java Swing για την επιλογή από λίστα πληροφοριών. Με το συστατικό JList μπορούμε να επιλέξουμε

Διαβάστε περισσότερα

Περιεχόµενα. Πρόλογος...15

Περιεχόµενα. Πρόλογος...15 Περιεχόµενα Πρόλογος...15 Κεφάλαιο 1: Εισαγωγή...17 Τι είναι η Java... 17 Η ιστορία της Java... 21 Εκδόσεις της Java... 23 Ξεκίνηµα µε την Java... 24 Το περιβάλλον της γλώσσας... 28 ηµιουργία µιας εφαρµογής

Διαβάστε περισσότερα

ηµιουργία ιαλογικών Προγραµµάτων για το Web

ηµιουργία ιαλογικών Προγραµµάτων για το Web ηµιουργία ιαλογικών Προγραµµάτων για το Web Βοηθητικές Εφαρµογές (). Οι βασικές µέθοδοι των Βοηθητικών Εφαρµογών. Η µέθοδος init(). Οι µέθοδοι start() και stop(). Η µέθοδος paint(). Η µέθοδος destroy().

Διαβάστε περισσότερα

10.1 Γενικά για τα streams

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

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 4: JAVA: ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ, ΓΡΑΦΙΚΑ, APPLETS Γραφικές Διεπαφές Χρήστη - awt ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική

Διαβάστε περισσότερα

Εργαστήριο 2 - Άσκηση - Ανάλυση

Εργαστήριο 2 - Άσκηση - Ανάλυση Εργαστήριο 2 - Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε την εφαρμογή Αριθμήτηριο σε Java Swing με χρήση NetBeans ακολουθώντας τις παρακάτω οδηγίες. 1. Η εφαρμογή θα σχεδιασθεί σε ένα εξωτερικό υποδοχέα

Διαβάστε περισσότερα

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Στην Java εκτός από τις κλασικές εφαρμογές μπορούμε να δημιουργήσουμε και άλλους δύο τύπους εφαρμογών: τα Applets, τα οποία τρέχουν μέσα από κάποιο φυλλομετρητή (browser) και τρέχουν

Διαβάστε περισσότερα

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

Διαβάστε περισσότερα

VK -14/10/2016 Σελίς 1

VK -14/10/2016 Σελίς 1 Ο Source Kώδικας της JFrame Φόρµας µε όνοµα Αsk1 Με δεξί κλικ στο Source Packages του project Ergastirio1 µε New -> JFrame Form επιλέξαµε να δηµιουργηθεί η JFrame φόρµα (πλαίσιο) µε όνοµα κλάσης Class

Διαβάστε περισσότερα

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 11 : Το πακέτο SWING Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

Διαβάστε περισσότερα

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων Τι θα μάθουμε σήμερα: Να αναφέρουμε τα κύρια χαρακτηριστικά ενός Γραφικού Περιβάλλοντος Επικοινωνίας Να εξηγούμε τη χρήση των κουμπιών του

Διαβάστε περισσότερα

Λίγα λόγια από το συγγραφέα Microsoft Word Δημιουργία νέου εγγράφου Το σύστημα Βοήθειας του Word...

Λίγα λόγια από το συγγραφέα Microsoft Word Δημιουργία νέου εγγράφου Το σύστημα Βοήθειας του Word... ΕΝΟΤΗΤΑ 3 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 91 Microsoft Word 2007... 9 92 Δημιουργία νέου εγγράφου... 20 93 Το σύστημα Βοήθειας του Word... 38 94 Μετακίνηση σε έγγραφο και προβολές εγγράφου...

Διαβάστε περισσότερα

Εργαστήριο 7 - Άσκηση - Ανάλυση

Εργαστήριο 7 - Άσκηση - Ανάλυση Εργαστήριο 7 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε την εφαρµογή «simple editor» σε Java Swing µε χρήση NetBeans. Στην εφαρµογή αυτή ο χρήστης θα µ ορεί να φορτώνει, α οθηκεύει α λό αρχείο κειµένου

Διαβάστε περισσότερα

8.1 Top-Level Swing Containers και Swing Components

8.1 Top-Level Swing Containers και Swing Components Εισαγωγή στη γλώσσα προγραμματισμού Java 59 8. Γραφικές διεπαφές τύπου Swing (Swing GUIs) Τα πακέτα που αρχίζουν με το πρόθεμα javax.swing παρέχουν ευέλικτα και ισχυρά εργαλεία ανάπτυξης GUI. Ιδιαίτερα

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Γραφικές Διεπαφές Χρήστη Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εργαστήριο 8 - Άσκηση - Ανάλυση

Εργαστήριο 8 - Άσκηση - Ανάλυση Εργαστήριο 8 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε την εφαρµογή «Simple Menu Editor» σε Java Swing µε χρήση NetBeans. Στην εφαρµογή αυτή ο χρήστης θα µ ορεί να φορτώνει, α οθηκεύει α λό αρχείο κειµένου

Διαβάστε περισσότερα

Εισαγωγή στο πρόγραμμα Microsoft word 2003

Εισαγωγή στο πρόγραμμα Microsoft word 2003 Εισαγωγή στο πρόγραμμα Microsoft word 2003 Έναρξη 1. Εκκίνηση του προγράμματος Για να ξεκινήσουμε το Word, πατάμε στο κουμπί Εναρξη και από το μενού που εμφανίζεται επιλέγουμε Προγράμματα και Microsoft

Διαβάστε περισσότερα

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 6 o ΕΡΓΑΣΤΗΡΙO

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 6 o ΕΡΓΑΣΤΗΡΙO ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 6 o ΕΡΓΑΣΤΗΡΙO H φόρµα µε τίτλο «ΜΑΚΗS, θα περιέχει ένα ΤabbedPane µε 2 Καρτέλες. Στο 1 ο tab θα επιλέγεις τι θα πάρεις, και στο 2 ο θα τυπώνεται ο λογαριασμός σου 1. Θα

Διαβάστε περισσότερα

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας Δημιουργία η-μαθήματος με τη χρήση του Moodle 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας Δημιουργία η-μαθήματος με τη χρήση του Moodle 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Διαβάστε περισσότερα

Οπτικός Προγραμματισμός σε NetBeans με Java Swing

Οπτικός Προγραμματισμός σε NetBeans με Java Swing Οπτικός Προγραμματισμός σε NetBeans με Java Swing 1 NetBeans Το NetBeans είναι το επίσημο ολοκληρωμένο περιβάλλον ανάπτυξης (IDE - Integrated Development Environment) για υλοποίηση εφαρμογών σε Java 8.

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 4: JAVA: ΔΙΕΠΑΦΕΣ ΧΡΗΣΤΗ, ΓΡΑΦΙΚΑ, APPLETS Γραφικές Διεπαφές Χρήστη - Swing ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών

Διαβάστε περισσότερα

ΘΕΣΗ ΤΩΝ ΠΑΡΑΘΥΡΩΝ ΣΤΗΝ ΟΘΟΝΗ

ΘΕΣΗ ΤΩΝ ΠΑΡΑΘΥΡΩΝ ΣΤΗΝ ΟΘΟΝΗ ΘΕΣΗ ΤΩΝ ΠΑΡΑΘΥΡΩΝ ΣΤΗΝ ΟΘΟΝΗ Παράθυρο στο Προσκήνιο Παράθυρο στο Παρασκήνιο Λωρίδα Εργασιών Μπορούν να υπάρχουν πολλά παράθυρα στην οθόνη. Το κάθε παράθυρο αντιστοιχεί σε ένα Πρόγραμμα που «τρέχει» (λειτουργεί)

Διαβάστε περισσότερα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

Διαβάστε περισσότερα

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Τα όρια μπορούν να εμφανιστούν σε κάθε συστατικό της Java Swing. Με τα όρια μπορούμε να ορίσουμε εμφανή περιθώρια για κάθε συστατικό. Η εμφάνιση των ορίων είναι ιδιαίτερα χρήσιμη

Διαβάστε περισσότερα

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

Διαβάστε περισσότερα

Computing and Information Systems Service. ιαχείριση Αρχείων

Computing and Information Systems Service. ιαχείριση Αρχείων ιαχείριση Αρχείων Η διαχείριση αρχείων είναι πολύ σηµαντική για την οργάνωση των αρχείων σας σε φακέλους και την αποθήκευση των αρχείων που συσχετίζονται µεταξύ τους στον ίδιο φάκελο. Αν έχετε πολλά αρχεία,

Διαβάστε περισσότερα

Πίνακες, περιγράµµατα και σκίαση

Πίνακες, περιγράµµατα και σκίαση Πίνακες, περιγράµµατα και σκίαση Οι πίνακες Οι πίνακες είναι ορθογώνια πλαίσια που χωρίζονται σε γραµµές και στήλες. Η τοµή µιας γραµµής µε µια στήλη προσδιορίζει ένα κελί. Τα στοιχεία, που παρουσιάζουµε,

Διαβάστε περισσότερα

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω. Εργαλεία του JDK Β.1 Εργαλεία του JDK Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω. O µεταγλωττιστής (compiler) της Java javac. O διερµηνευτής (interpreter) της Java java. Το υπεύθυνο εργαλείο για

Διαβάστε περισσότερα

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος 5. Γραφήματα 5.1 Εισαγωγή 5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος Το Discoverer παρέχει μεγάλες δυνατότητες στη δημιουργία γραφημάτων, καθιστώντας δυνατή τη διαμόρφωση κάθε συστατικού μέρους

Διαβάστε περισσότερα

Δημιουργία ενός κενού πίνακα

Δημιουργία ενός κενού πίνακα 3.4.1.1 Δημιουργία ενός κενού πίνακα Ένας πίνακας αποτελείται από έναν αριθμό γραμμών και στηλών που δημιουργούν ένα πλέγμα. Σε αυτό το πλέγμα είναι πιθανή η ύπαρξη ή μη περιθωρίων. Κάθε κελί του πίνακα

Διαβάστε περισσότερα

VK -14/10/2016 Σελίς 1

VK -14/10/2016 Σελίς 1 ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ ΕΙΣΑΓΩΓΗ Προγραµµατισµός µε Γραφικά (Εισαγωγή στη JavaSwing και γνωριµία µε το εργαλείο NetBeans) Εξαιρετικό παράδειγµα που συνδυάζει όλες τις έννοιες του αντικειµενοστρεφή

Διαβάστε περισσότερα

Εισαγωγή/ απομάκρυνση συμβόλων παραγράφου

Εισαγωγή/ απομάκρυνση συμβόλων παραγράφου 3.3.2.1 Εισαγωγή/ απομάκρυνση συμβόλων παραγράφου Υπάρχει μία μικρή διαφορά μεταξύ της λέξης παράγραφος, όπως τη χρησιμοποιούμε εδώ και όπως κοινώς χρησιμοποιείται. Τεχνικά, μία παράγραφος είναι ένα μπλοκ,

Διαβάστε περισσότερα

Εργαστήριο 9 - Άσκηση - Ανάλυση

Εργαστήριο 9 - Άσκηση - Ανάλυση Εργαστήριο 9 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε ένα αντίγραφο της άσκησης της 8ης εργαστηριακής εβδοµάδας. Κάντε τις α αραίτητες τρο ο οιήσεις ώστε να αντικαταστήσετε τα δύο jdialog ου χρησιµο οιήσατε

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

Διαβάστε περισσότερα

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΜΑΘΗΜΑ : Η/Υ I (ενότητα WINDOWS) ΥΠΕΥΘΥΝΟΣ : ΑΝΑΣΤΑΣΙΟΣ ΟΙΚΟΝΟΜΙΔΗΣ, Καθηγητής ΕΡΓΑΣΤΗΡΙΑ : ΘΕΑΝΩ ΧΑΤΖΙΔΑΚΗ, Εργαστηριακό

Διαβάστε περισσότερα

Εγχειρίδιο διαχείρισης χρηστών και λιστών διανομής για τον Υπεύθυνο Φορέα του Δικτύου "Σύζευξις" -1-

Εγχειρίδιο διαχείρισης χρηστών και λιστών διανομής για τον Υπεύθυνο Φορέα του Δικτύου Σύζευξις -1- -1- 1 Διαχείριση Χρηστών...3 1.1 Υπηρεσίες...5 1.1.1 Δημιουργία νέου χρήστη...6 1.1.2 Αναζήτηση χρήστη...7 1.1.2 Επεξεργασία στοιχείων χρήστη...8 1.1.3 Δημιουργία /Επεξεργασία mailbox plan...10 1.1.4 Ενεργοποίηση

Διαβάστε περισσότερα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

Διαβάστε περισσότερα

Εργαστήριο 5 - Άσκηση - Ανάλυση

Εργαστήριο 5 - Άσκηση - Ανάλυση Εργαστήριο 5 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε την εφαρµογή «ιακο ές» σε Java Swing µε χρήση NetBeans, χρησιµο οιώντας τις εικόνες ου θα βρείτε στο moodle και ακολουθώντας τις αρακάτω οδηγίες:

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια από τον συγγραφέα Microsoft Excel Η δομή ενός φύλλου εργασίας... 21

Περιεχόμενα. Λίγα λόγια από τον συγγραφέα Microsoft Excel Η δομή ενός φύλλου εργασίας... 21 ENOTHTA 4 Περιεχόμενα Λίγα λόγια από τον συγγραφέα... 7 1 Microsoft Excel 2010... 9 2 Η δομή ενός φύλλου εργασίας... 21 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 27 4 Συμβουλές για

Διαβάστε περισσότερα

Βιοϊατρική τεχνολογία

Βιοϊατρική τεχνολογία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Βιοϊατρική τεχνολογία Ενότητα 5: Οξύμετρο (OxyPro Project) Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr ΕΕΔΙΠ Μπέλλου Σοφία e-mail: sbellou@uowm.gr

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 1 Microsoft Word 2010... 9. 2 ημιουργία νέου εγγράφου... 17. 3 Το σύστημα Βοήθειας του Office...

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 1 Microsoft Word 2010... 9. 2 ημιουργία νέου εγγράφου... 17. 3 Το σύστημα Βοήθειας του Office... Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 1 Microsoft Word 2010... 9 2 ημιουργία νέου εγγράφου... 17 3 Το σύστημα Βοήθειας του Office... 31 4 Μετακίνηση σε έγγραφο και προβολές εγγράφου... 37 5 Επιλογή

Διαβάστε περισσότερα

6 Το μικρό βιβλίο για το ελληνικό Word 2010

6 Το μικρό βιβλίο για το ελληνικό Word 2010 Περιεχόμενα Κεφάλαιο 1 Microsoft Word 2010... 7 Κεφάλαιο 2 ημιουργία νέου εγγράφου... 13 Κεφάλαιο 3 Το σύστημα Βοήθειας του Office... 26 Κεφάλαιο 4 Μετακίνηση σε έγγραφο και προβολές εγγράφου... 31 Κεφάλαιο

Διαβάστε περισσότερα

MEDIWARE L.I.S ΟΔΗΓΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΠΙΣΚΕΨΕΩΝ

MEDIWARE L.I.S ΟΔΗΓΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΠΙΣΚΕΨΕΩΝ MEDIWARE L.I.S. 2006 ΟΔΗΓΙΕΣ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΠΙΣΚΕΨΕΩΝ -1 -2 Προγραμματισμός Επισκέψεων. Με την επιλογή Προγραμματισμός Επισκέψεων ο χειριστής έχει τη δυνατότητα να καταχωρίσει τις μελλοντικές

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Κεφάλαιο 2.3: Ρυθμίσεις των Windows Κεφάλαιο 2.3: Ρυθμίσεις των Windows 2.3.1 Βασικές πληροφορίες συστήματος Για να δούμε βασικές πληροφορίες για τον υπολογιστή μας, πατάμε το κουμπί «Έναρξη» και επιλέγουμε διαδοχικά «Πίνακας Ελέγχου», «Σύστημα

Διαβάστε περισσότερα

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI 9 2013 6 11 9.1 JFC Swing.................................... 9 1 9.2 (Graphics )................. 9 2 9.3.................................. 9 4 9.4 (Color ).............................. 9 6 9.5.......................................

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word)

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word) 1. Πώς δημιουργούμε ένα νέο έγγραφο; 2. Πώς αποθηκεύουμε ένα έγγραφο στη δισκέτα μας; 3. Μπορείτε να περιγράψετε τη βασική οθόνη του Word;. 4. Τι ακριβώς κάνει το εργαλείο ζουμ; 5. Ποιους κανόνες ακολουθεί

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση

Διαβάστε περισσότερα

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης V3.0

Εγχειρίδιο Χρήσης V3.0 ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ Εγχειρίδιο Χρήσης V3.0 Πίνακας Περιεχομένων: 1. Σύνδεση με την συσκευή 3 1.1 Σύνδεση μέσω Wi-Fi Direct.... 3 1.2 Ενσύρματη σύνδεση (LAN) 3 1.3 Ασύρματη σύνδεση (WiFi).

Διαβάστε περισσότερα

Οδηγός γρήγορης εκκίνησης

Οδηγός γρήγορης εκκίνησης Οδηγός γρήγορης εκκίνησης Το Microsoft Word 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης. Γραμμή

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 7: Abstract Window Toolkit (AWT) Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

Εργαστήριο 6 - Άσκηση - Ανάλυση

Εργαστήριο 6 - Άσκηση - Ανάλυση Εργαστήριο 6 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε την εφαρµογή «fastfood» σε Java Swing µε χρήση NetBeans χρησιµο οιώντας τις εικόνες ου θα βρείτε στο moodle. Στην εφαρµογή ο υ άλληλος του µαγαζιού

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Swing H Swing είναι η βιβλιοθήκη της Java για τον προγραμματισμό GUIs (Graphical User Interfaces) [και πιο γενικά για

Διαβάστε περισσότερα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Εγχειρίδιο του Accerciser, έκδοση 0.2.0

Εγχειρίδιο του Accerciser, έκδοση 0.2.0 i Εγχειρίδιο του Accerciser, ii Copyright 2006, 2007, 2008 IBM Corporation Ανάδραση Για να αναφέρετε ένα σφάλμα ή να κάνετε μια εισήγηση σχετικά με την εφαρμογή Accerciser ή με αυτό τον εγχειρίδιο, ακολουθήστε

Διαβάστε περισσότερα

Εγχειρίδιο χρήσης Print2PDF σελ. 1 από 32

Εγχειρίδιο χρήσης Print2PDF σελ. 1 από 32 Πρόγραμμα Print2PDF (Εκτύπωση κειμένου και εικόνων σε αρχεία PDF) Πρόλογος Η εφαρμογή Print2PDF (Print to PDF Εκτύπωση σε αρχεία PDF) σας επιτρέπει να εκτυπώσετε το δικό σας κείμενο πάνω σε ένα έντυπο

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); }

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( You pressed the 1st button ); } ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 1 o ΕΡΓΑΣΤΗΡΙO-3ασκήσεις Θα χρησιµοποιηθεί το πακέτο ΝetBeansIDE Θα δηµιουργήσουµε µια νέα εφαρµογή/ Project µε όνοµα π.χ. Ergastirio1 επιλέγοντας από το 1 ο µενού File /

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση Swing H Swing είναι η βιβλιοθήκη της Java για τον προγραμματισμό GUIs (Graphical User Interfaces) [και πιο

Διαβάστε περισσότερα

περιεχόμενα Εισαγωγή 6 Τα βασικά συστατικά του υπολογιστή 10 Η επιφάνεια εργασίας (desktop) 16 Windows 7 Windows 8 Τα πρώτα βήματα στο Internet 84

περιεχόμενα Εισαγωγή 6 Τα βασικά συστατικά του υπολογιστή 10 Η επιφάνεια εργασίας (desktop) 16 Windows 7 Windows 8 Τα πρώτα βήματα στο Internet 84 περιεχόμενα Εισαγωγή 6 Τα βασικά συστατικά του υπολογιστή 10 Η επιφάνεια εργασίας (desktop) 16 Windows 7 H πρώτη επαφή με τα Windows 7 21 Απλές αλλαγές και ρυθμίσεις 26 Χειρισμός προγραμμάτων 31 Αναζήτηση,

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ VERSION CMS 4.0 ΕΚ ΟΣΗ ΕΓΧΕΙΡΙ ΙΟΥ 4.0.1-2009 ΤΕΛΕΥΤΑΙΑ ΕΝΗΜΕΡΩΣΗ ΙΑΝΟΥΑΡΙΟΣ 2009 Το παρόν εγχειρίδιο διατίθεται µαζί µε την πλατφόρµα ηλεκτρονικού επιχειρείν

Διαβάστε περισσότερα

Σύνθεταγραφικάσ ε Java

Σύνθεταγραφικάσ ε Java Σύνθεταγραφικάσ ε Java ΙωάννηςΓ.Τσ ούλος May 15, 2013 1 Δημιουργία απλών παραθύρων Τοεπόμενοπαράδειγμαδημιουργείέναπαράθυρομεδύοσ τατικάκείμενασ εαυτό. Στοπρώτοσ τατικόκείμενοτοκείμενοείναιαπλόκαισ τοδεύτερογίνεταιχρήσ

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 91 Windows Vista... 9 92 Επιφάνεια εργασίας... 18 93 Γραμμή εργασιών... 31 94 Χειρισμός παραθύρων... 53 95 Το παράθυρο Υπολογιστής... 77 96 Το μενού Έναρξη...

Διαβάστε περισσότερα

Εγχειρίδιο χρήσης του Άβακα

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

Διαβάστε περισσότερα

Εφαρμογή Ηλεκτρονικής Υποβολής Δηλώσεων Ε9. Οδηγίες Χρήσης

Εφαρμογή Ηλεκτρονικής Υποβολής Δηλώσεων Ε9. Οδηγίες Χρήσης Εφαρμογή Ηλεκτρονικής Υποβολής Δηλώσεων Ε9 Οδηγίες Χρήσης Πίνακας Περιεχομένων 1. Αρχική οθόνη... 3 2. Αρχική Οθόνη Πιστοποιημένου Χρήστη... 4 2.1. Οριστικοποίηση της Περιουσιακής Εικόνας... 5 2.2. Καρτέλες

Διαβάστε περισσότερα

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Τα Windows Πολύ Απλά και Πολύ Σύντομα Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Τα Windows Πολύ Απλά και

Διαβάστε περισσότερα

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

Διαβάστε περισσότερα

Περιεχόμενα. Εισαγωγή στο Word Βασικές μορφοποιήσεις κειμένων Κεφάλαιο 1. Κεφάλαιο 2

Περιεχόμενα. Εισαγωγή στο Word Βασικές μορφοποιήσεις κειμένων Κεφάλαιο 1. Κεφάλαιο 2 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στο Word 2007...9 Η οθόνη του Word... 9 Δημιουργία νέου εγγράφου... 15 Προσθήκη και διαγραφή κειμένου... 18 Πρώτα επιλογή, μετά εργασία... 20 Εύρεση και αντικατάσταση κειμένου...

Διαβάστε περισσότερα

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG Μια από τις πιο σηµαντικές ανάγκες που αντιµετωπίζει µια επιχείρηση κατά την εγκατάσταση ενός λογισµικού «πακέτου» (Οικονοµικής & Εµπορικής ιαχείρισης), είναι ο τρόπος µε τον οποίο πρέπει να ανταποκριθεί

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

Διαβάστε περισσότερα

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

Διαβάστε περισσότερα

Αναπαραγωγή με αρχεία ήχου

Αναπαραγωγή με αρχεία ήχου Αναπαραγωγή με αρχεία ήχου Ανοίγει η παρουσίαση και εμφανίζεται η διαφάνεια τίτλου, "Πειράματα με αρχεία ήχου". Άσκηση 1: Εισαγωγή ήχου για συνεχή αναπαραγωγή Βήμα 1: Εισαγωγή ήχου Στη διαφάνεια 1, με

Διαβάστε περισσότερα

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΣΚΛΗΣΕΩΝ ΕΡΓΩΝ ΣΧΕΔΙΩΝ ΧΟΡΗΓΙΩΝ» 1η Έκδοση: 2015 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...3

Διαβάστε περισσότερα

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου Ιωάννης Γ. Τσούλος Εργασία Πρώτη - Αριθμομηχανή Με την χρήση του περιβάλλοντος AWT ή του SWING θα πρέπει να δημιουργηθεί αριθμομηχανή για την εκτέλεση

Διαβάστε περισσότερα

Γραφικές ιεπαφές Χρήστη και Γραφικά

Γραφικές ιεπαφές Χρήστη και Γραφικά Κεφάλαιο 18 Γραφικές ιεπαφές Χρήστη και Γραφικά Νοηµοσύνη είναι η ικανότητα να δηµιουργούµε τεχνητά αντικείµενα, ιδιαίτερα εργαλεία που φτιάχνουν εργαλεία. Henri Bergson Η ζωγραφική είναι µόνο µια γέφυρα

Διαβάστε περισσότερα

ιαµόρφωση σελίδας Προεπισκόπηση Εκτύπωση

ιαµόρφωση σελίδας Προεπισκόπηση Εκτύπωση ιαµόρφωση σελίδας Προεπισκόπηση Εκτύπωση Η µορφοποίηση των σελίδων ενός εγγράφου Πριν ξεκινήσετε να δηµιουργείτε ένα έγγραφο, είναι χρήσιµο να έχετε σχεδιάσει ή να έχετε κατά νου πώς περίπου θέλετε να

Διαβάστε περισσότερα

Περιεχόµενα 1. Εγκατάσταση 2. Εισαγωγή 3. Σύνδεση 4. Ρυθµίσεις 2.1 Περιοχή εργασιών και πλοήγησης 2.2 Περιοχή απεικόνισης "Λεπτοµέρειες" 2.3 Περιοχή απεικόνισης "Στατιστικά" 4.1 Προφίλ 4.2 ίκτυο 4.2.1

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013 ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013 1. Δίκτυα Υπολογιστών και Διαδίκτυο... 3 1.1. Όροι Και Έννοιες... 3 1.2. Ασφάλεια Στο Διαδίκτυο... 5 2. Περιήγηση στον Παγκόσμιο Ιστό 7 Το Περιβάλλον Ενός Φυλλομετρητή...

Διαβάστε περισσότερα