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

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

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

Transcript

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

2 Στην Ανάπτυξη Διεπιφανειών Χρήστη μια σημαντική λειτουργία είναι η εισαγωγή, εμφάνιση και τροποποίηση κειμένου. Θα μελετήσουμε αναλυτικά τέσσερα συστατικά της Java Swing για την υλοποίηση λειτουργιών σχετικών με τη διαχείριση κειμένου. Τα συστατικά που θα μελετήσουμε είναι: JTextField JPasswordField JFormattedTextField JTextArea Δρ. Κεραμόπουλος Ευκλείδης 2

3 Όλα τα συστατικά κειμένου στη Java Swing είναι παιδιά της αφηρημένης τάξης JTextComponent. Στη τάξη JTextComponent δηλώνεται κοινή συμπεριφορά για όλα τα συστατικά κειμένου της Java Swing και βρίσκεται στο πακέτο javax.swing.text. Τα μοντέλα που ακολουθεί το JTextComponent ορίζονται στη διεπαφή Document είναι: PlainDocument για απλό κείμενο DefaultStyleDocument για HTML, RTF κτλ κείμενο HTMLDocument για HTML κείμενο Δρ. Κεραμόπουλος Ευκλείδης 3

4 Ένα σημαντικό χαρακτηριστικό στη διαχείριση κειμένου είναι ο δείκτης του ποντικιού (cursor), ο οποίος στη Java Swing ονομάζεται caret. Η θέση του caret σε ένα κείμενο δείχνει που θα συμβεί το επόμενο γεγονός. Υπάρχει η δυνατότητα να αλλάξουμε το χρώμα, τη θέση, το σχήμα του caret. Με βάση τη θέση του caret είναι δυνατόν να πάρουμε ένα επιλεγμένο κομμάτι από το κείμενο. Με χρήση μεθόδων ένα επιλεγμένο κομμάτι μπορούμε να το αντιγράψουμε, αποκόψουμε, επικολλήσουμε. Δρ. Κεραμόπουλος Ευκλείδης 4

5 Κάθε φορά που ο caret αλλάζει θέση δημιουργείται ένα CaretEvent γεγονός το οποίο «ακούγεται» από τον ακροατή CaretListener και υλοποιείται από την μέθοδο caretupdate void caretupdate(caretevent ce); Με τη μέθοδο getdot() επιστρέφεται η θέση του caret. Με τη μέθοδο getmark() επιστρέφεται η πρώτη θέση επιλογής ενός κειμένου. Ανάμεσα στο mark και το dot είναι το επιλεγμένο κείμενο. Έτσι όταν mark και dot έχουν την ίδια τιμή τότε δεν έχει επιλεγεί κείμενο. Δρ. Κεραμόπουλος Ευκλείδης 5

6 ΜΕΘΟΔΟΣ void addcaretlistener(caretlistener cl) void copy() void cut() void paste() int getcaretposition() Document getdocument() String gettext() String gettext(int start, int end) void settext(string str) ΠΕΡΙΓΡΑΦΗ Προσθέτει ένα ακροατή για caret γεγονότα. Αντιγράφει στο clipboard το επιλεγμένο κείμενο. Αντιγράφει στο clipboard το επιλεγμένο κείμενο. Επίσης, διαγράφει το επιλεγμένο κείμενο. Κάνει επικόλληση του κειμένου που βρίσκεται στο clipboard στη περιοχή ακριβώς πριν τη θέση του caret. Σε περίπτωση που είναι επιλεγμένο άλλο κείμενο τότε το αντικαθιστά με το κείμενο που βρίσκεται στο clipboard. Επιστρέφει πόσους χαρακτήρες απέχει το caret από την αρχή του κειμένου. Επιστρέφει το μοντέλο που ακολουθείται. Επιστρέφει όλο το κείμενο που περιέχεται στο συστατικό. Επιστρέφει το κείμενο που περιέχεται ανάμεσα στο start και το end. Καταχωρεί το κείμενο που περιέχει το str. Δρ. Κεραμόπουλος Ευκλείδης 6

7 ΜΕΘΟΔΟΣ String getselectedtext() int getselectionstart() int getselectionend() boolean iseditable() void seteditable(boolean conedit) void movecaretposition(int newloc) void read(reader input, Object what) throw IOExcption void write(writer output) throws IOException ΠΕΡΙΓΡΑΦΗ Επιστρέφει το κείμενο που είναι επιλεγμένο. Επιστρέφει πόσους χαρακτήρες απέχει το πρώτο σημείο του επιλεγμένου κειμένου από την αρχή του κειμένου. Επιστρέφει πόσους χαρακτήρες απέχει το τελευταίο σημείο του επιλεγμένου κειμένου από την αρχή του κειμένου. Επιστρέφει true αν το κείμενο μπορεί να διορθωθεί και false αν είναι read-only Ορίζει αν το κείμενο θα μπορεί να διορθωθεί (true) ή αν θα είναι read-only (false) Τοποθετεί το caret στη θέση newloc το οποίο είναι πόσους χαρακτήρες απέχει από την αρχή του κειμένου. Το κείμενο ανάμεσα στην προηγούμενη θέση και την τρέχουσα του caret επιλέγεται. Αντιγράφει κείμενο από το Input Stream στο συστατικό κειμένου. Γράφει το κείμενο που περιέχεται στο συστατικό κειμένου στο Output Stream. Δρ. Κεραμόπουλος Ευκλείδης 7

8 ΜΕΘΟΔΟΣ void select(int start, int end) void selectall() Insets getmargin() void setmargins(insets margins) ΠΕΡΙΓΡΑΦΗ Επιλέγει το κείμενο που περιέχεται από τη θέση start στη θέση end. To start θα πρέπει να είναι μικρότερο ή ίσο του end. Επιλέγει όλο το κείμενο που περιέχεται στο συστατικό κειμένου. Επιστρέφει ένα αντικείμενο Insets το οποίο περιέχει τα περιθώρια. Ορίζει τα περιθώρια σύμφωνα με το αντικείμενο margins. Δρ. Κεραμόπουλος Ευκλείδης 8

9 Το πιο απλό συστατικό κειμένου είναι το JTextField με το οποίο μπορούμε να διαχειριστούμε μία γραμμή κειμένου. Το JTextField δημιουργείται με τους παρακάτω δομητές: ΔΟΜΗΤΗΣ ΠΕΡΙΓΡΑΦΗ JTextField() JTextField(int cols) JTextField(String str) JTextField(String str, int cols) JTextField(Document model, String str, int cols) Δημιουργεί ένα άδειο JTextField. Δημιουργεί ένα JTextField με πλάτος cols. Δημιουργεί ένα JTextField το οποίο περιέχει το αλφαρηθμιτικό str. Δημιουργεί ένα JTextField το οποίο περιέχει το αλφαριθμητικό str και έχει πλάτος cols. Δημιουργεί ένα JTextField ακολουθώντας το μοντέλο model, περιέχει το αλφαριθμητικό str και έχει πλάτος cols. Δρ. Κεραμόπουλος Ευκλείδης 9

10 το JTextField ακολουθεί το PlainDocument μοντέλο. το JTextField δημιουργεί ένα ActionEvent γεγονός όταν πατείτε ένα πλήκτρο (το ENTER είναι το default) το οποίο το ακούει ένας ActionListener ακροατής και υλοποιείται στη μέθοδο ActionPerformed. Με τη μέθοδο void setactioncommand(string cmd); μπορούμε να ορίσουμε ένα χαρακτηριστικό όνομα όταν δημιουργείται ActionEvent γεγονός από κάποιο JTextField. Έχοντας ορίσει χαρακτηριστικά ονόματα μπορούμε να διαχειριστούμε γεγονότα από πολλά JTextField. Με τη μέθοδο από το πακέτο java.awt Font getfont() επιστρέφεται το font που έχει το κείμενο ενώ με τη μέθοδο void setfont(font newfont) ορίζει ένα νέο font για το κείμενο, π.χ JTextField.setFont(new Font( arial, Font.BOLD, 20)); Δρ. Κεραμόπουλος Ευκλείδης 10

11 θα γίνει χρήση των λειτουργιών cut και paste ενός κειμένου είτε μέσω των JButtons αλλά και των συντομεύσεων CTRL-X και CTRL-V. Δρ. Κεραμόπουλος Ευκλείδης 11

12 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. import javax.swing.event.*; 6. class JTextFieldDemo { 7. JLabel jlaball; 8. JLabel jlabselected; 9. JTextField jtf; 10. JButton jbtncut; 11. JButton jbtnpaste; 12. public JTextFieldDemo() { 13. JFrame jfrm = new JFrame("Use JTextField"); 14. jfrm.setlayout(new FlowLayout()); 15. jfrm.setsize(200, 150); 16. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 17. jlaball = new JLabel("All text: "); 18. jlabselected = new JLabel("Selected text: "); 19. jtf = new JTextField("This is a test.", 15); Το μέγεθος του jtf είναι 15. Δρ. Κεραμόπουλος Ευκλείδης 12

13 20. jtf.addactionlistener(new ActionListener() { 21. public void actionperformed(actionevent le) { 22. jlaball.settext("all text: " + jtf.gettext()); 23. jlabselected.settext("selected text: " + jtf.getselectedtext()); 24. } 25. }); Όταν πατείτε ENTER μέσα στο συστατικό κειμένου jtf τότε με τη μέθοδο gettext() παίρνουμε όλο το κείμενο του jtf. Με τη μέθοδο getselectedtext() παίρνουμε μόνο το επιλεγμένο κείμενο. 26. jbtncut = new JButton("Cut"); 27. jbtnpaste = new JButton("Paste"); 28. jbtncut.addactionlistener(new ActionListener() { 29. public void actionperformed(actionevent le) { 30. jtf.cut(); 31. jlaball.settext("all text: " + jtf.gettext()); 32. jlabselected.settext("selected text: " + jtf.getselectedtext()); 33. } 34. }); Όταν πατείτε το πλήκτρο CUT τότε αφαιρείται το επιλεγμένο κείμενο του συστατικού jtf με τη μέθοδο cut() και τοποθετείται στο clipoard. 35. jbtnpaste.addactionlistener(new ActionListener() { 36. public void actionperformed(actionevent le) { 37. jtf.paste(); 38. } 39. }); Όταν πατείτε το πλήκτρο PASTE τότε επικολλείται το κείμενο που βρίσκεται στο clipboard στο σημείο που βρίσκεται ο CARET μέσα στο συστατικό jtf Δρ. Κεραμόπουλος Ευκλείδης 13

14 40. jtf.addcaretlistener(new CaretListener() { 41. public void caretupdate(caretevent ce) { 42. jlaball.settext("all text: " + jtf.gettext()); 43. jlabselected.settext("selected text: " + jtf.getselectedtext()); 44. } 45. }); Κάθε φορά που μετακινείται ο CARET ενεργοποιείται αυτό το γεγονός και εμφανίζει την τρέχουσα κατάσταση στις ετικέτες. 46. jfrm.add(jtf); 47. jfrm.add(jbtncut); 48. jfrm.add(jbtnpaste); 49. jfrm.add(jlaball); 50. jfrm.add(jlabselected); 51. jtf.setcaretposition(5); 52. jtf.movecaretposition(7); 53. jfrm.setvisible(true); 54. } Τοποθετεί τον caret στη θέση 5. Μετά τον τοποθετεί στη θέση 7. Αυτόματα επιλέγεται το κείμενο στις θέσεις 6 και public static void main(string args[]) { 56. SwingUtilities.invokeLater(new Runnable() { 57. public void run() { 58. new JTextFieldDemo(); 59. } 60. }); 61. } 62. } Δρ. Κεραμόπουλος Ευκλείδης 14

15 Το JPasswordField είναι υποτάξη του JTextField. Έχει σχεδιασθεί έτσι ώστε να εμφανίζονται * αντί για το κείμενο που εισάγεται για λόγους ασφαλείας. Επίσης, για λόγους ασφαλείας δεν μπορούμε να χρησιμοποιήσουμε τις μεθόδους cut(), copy(), paste(), gettext(). Αντί αυτών χρησιμοποιούμε τη μέθοδο char[ ] getpassword() η οποία επιστρέφει έναν πίνακα χαρακτήρων. Με τη μέθοδο void setechochar() είναι δυνατόν να αλλάξει το * με άλλο σύμβολο. Δρ. Κεραμόπουλος Ευκλείδης 15

16 JPasswordField() ΔΟΜΗΤΗΣ ΠΕΡΙΓΡΑΦΗ Δημιουργεί ένα άδειο JPasswordField. JPasswordField(int cols) JPasswordField(String str) JPasswordField(String str, int cols) JPasswordField(Document model, String str, int cols) Δημιουργεί ένα JPasswordField με πλάτος cols. Δημιουργεί ένα JPasswordField το οποίο περιέχει το αλφαριθμητικό str. Δημιουργεί ένα JPasswordField το οποίο περιέχει το αλφαριθμητικό str και έχει πλάτος cols. Δημιουργεί ένα JPasswordField ακολουθώντας το μοντέλο model, περιέχει το αλφαριθμητικό str και έχει πλάτος cols. Δρ. Κεραμόπουλος Ευκλείδης 16

17 Δρ. Κεραμόπουλος Ευκλείδης 17

18 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. import java.util.*; 6. class JPasswordFieldDemo { 7. JLabel jlabpw; 8. JPasswordField jpswd; Δημιουργεί ένα άδειο JPasswordField 9. public JPasswordFieldDemo() { 10. JFrame jfrm = new JFrame("Use JPasswordField"); 11. jfrm.setlayout(new FlowLayout()); 12. jfrm.setsize(240, 100); 13. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 14. jlabpw = new JLabel("Enter Password"); 15. jpswd = new JPasswordField(15); Ορίζεται πλάτος 15 Δρ. Κεραμόπουλος Ευκλείδης 18

19 17. jpswd.addactionlistener(new ActionListener() { 18. public void actionperformed(actionevent le) { 19. char pw[] = { 't', 'e', 's', 't' }; 20. char [] userseq = jpswd.getpassword(); 21. if(arrays.equals(userseq, pw)) 22. jlabpw.settext("password Valid"); 23. else 24. jlabpw.settext("password Invalid -- Try Again"); 25. Arrays.fill(pw, (char) 0); 26. Arrays.fill(userSeq, (char) 0); 27. } 28. }); Γίνεται έλεγχος αν μπήκε το σωστό password και εμφανίζεται το αντίστοιχο μήνυμα. 29. jfrm.add(jpswd); 30. jfrm.add(jlabpw); 31. jfrm.setvisible(true); 32. } 33. public static void main(string args[]) { 34. SwingUtilities.invokeLater(new Runnable() { 35. public void run() { 36. new JPasswordFieldDemo(); 37. } 38. }); 39. } 40. } Δρ. Κεραμόπουλος Ευκλείδης 19

20 Το JFormattedTextField δημιουργεί κείμενο με συγκεκριμένη μορφοποίηση. Δομητές του JFormattedTextField είναι οι παρακάτω: JFormattedTextField() ΔΟΜΗΤΗΣ JFormattedTextField(Object contents) JFormattedTextField(Format frt) JFormattedTextField( JFormattedTextField. AbstractFormatter absfmt) JFormattedTextField( JFormattedTextField. AbstractFormattedFactory absfmtfact) JFormattedTextField( JFormattedTextField. AbstractFormattedFactory absfmtfact, Object contents) ΠΕΡΙΓΡΑΦΗ Δημιουργεί ένα άδειο JFormattedTextField χωρίς ορισμένη μορφοποίηση. Δημιουργεί ένα JFormattedTextField το οποίο εμφανίζει το κείμενο που περιέχεται στο contents με την εμφάνιση που έχει οριστεί στο contents. Δημιουργεί ένα άδειο JFormattedTextField το οποίο χρησιμοποιεί για την εμφάνιση το frt Δημιουργεί ένα άδειο JFormattedTextField το οποίο χρησιμοποιεί για την εμφάνιση το absfmt Δημιουργεί ένα άδειο JFormattedTextField το οποίο χρησιμοποιεί για την εμφάνιση το absfmtfact Δημιουργεί ένα JFormattedTextField το οποίο χρησιμοποιεί για την εμφάνιση το absfmtfact και περιέχει το κείμενο που φαίνεται στο contents. Δρ. Κεραμόπουλος Ευκλείδης 20

21 Όταν χρησιμοποιούμε το δομητή JFormattedTextField(Object contents) τότε αυτόματα δημιουργείται ένα αντικείμενο AbstractFormattedFactory το οποίο βασίζεται στο αντικείμενο παράμετρο contents. Παράδειγμα: JFormattedTextField jtf = new JFormattedTextField(10000); θα εμφανισθεί ο αριθμός σε μορφή με άλλα λόγια αυτόματα θα ορισθεί η κλασική εμφάνιση των ακεραίων Δρ. Κεραμόπουλος Ευκλείδης 21

22 Εξασφαλίζουμε την εμφάνιση όπως ακριβώς τη θέλουμε με χρήση του δομητή JFormattedTextField(Format frt) Το Format είναι μία αφηρημένη τάξη με την οποία ορίζεται η εμφάνιση του κειμένου. Η Java Swing προσφέρει δύο τύπους Format: DateFormat και NumberFormat Δρ. Κεραμόπουλος Ευκλείδης 22

23 Χρησιμοποιούμε τη μέθοδο static final DateFormat getdateinstance(int datestyle) για να ορίσουμε πως θα εμφανίζεται η ημερομηνία του κειμένου To datestyle παίρνει τις τιμές 1. DateFormat.SHORT π.χ. 10/11/ DateFormat.MEDIUM π.χ. Νοε 10, DateFormat.LONG π.χ. 10 Νοέμβριος DateFormat.FULL π.χ. Δευτέρα, 10 Νοέμβριος 2009 Δρ. Κεραμόπουλος Ευκλείδης 23

24 Χρησιμοποιούμε τη μέθοδο static final NumberFormat getcurrencyinstance() για να ορίσουμε πως θα εμφανίζονται πεδία που περιέχουν χρήματα. Χρησιμοποιεί τις παραμέτρους του λειτουργικού για την εμφάνιση. Για παράδειγμα το ποσό 7000 θα εμφανισθεί 7.000,00 Δρ. Κεραμόπουλος Ευκλείδης 24

25 Μπορούμε να ορίσουμε την εμφάνιση κειμένου όπως ακριβώς θέλουμε με χρήση της τάξης MaskFormatter. H MaskFormatter είναι υποτάξη της JFormattedTextField.AbstractFormatter και επομένως θα πρέπει να χρησιμοποιήσουμε τον τέταρτο δομητή. JFormattedTextField(JFormattedTextField. AbstractFormatter absfmt) Δρ. Κεραμόπουλος Ευκλείδης 25

26 Για να ορίσουμε ένα αντικείμενο MaskFormatter χρησιμοποιούμε το δομητή: MaskFormatter(String fmtmask); To fmtmask ορίζει ποιοι χαρακτήρες μπορούν να εισαχθούν στο κείμενο και με ποια εμφάνιση, ανάλογα με τις παρακάτω τιμές: Α Αλφαριθμητικό Η Δεκαεξαδικό L Γράμματα τα οποία εμφανίζονται μικρά U Γράμματα τα οποία εμφανίζονται κεφαλαία # Αριθμοί * Όλοι οι χαρακτήρες? Όλα τα γράμματα άλλα σύμβολα Δρ. Κεραμόπουλος Ευκλείδης 26

27 Παράδειγμα MaskFormatter mf = new MaskFormatter("ID: AA-LL-UU"); jftfempid = new JFormattedTextField(mf); jftfempid.setvalue("id: as-io-oi"); Αποτέλεσμα Το MaskFormatter μπορεί να οδηγήσει σε ParseException, οπότε χρήσιμο είναι τον σχετικό κώδικα να τον ελέγχετε για αντίστοιχα λάθη. Δρ. Κεραμόπουλος Ευκλείδης 27

28 Στο JTextFormattedTextField δημιουργείται ένα ActionEvent γεγονός με το ENTER. Επίσης, δημιουργείται και ένα PropertyChangeEvent γεγονός, το οποίο το «ακούει» ο ακροατής PropertyChangeListener και το διαχειρίζεται η μέθοδος propertychange() To PropertyChangeEvent δημιουργείται γιατί όταν καταχωρούμε κείμενο σε ένα JTextFormattedTextField τότε θα πρέπει να πατήσουμε το πλήκτρο ENTER ή να επιλέξουμε κάποιο άλλο συστατικό για να μορφοποιηθεί το κείμενο σύμφωνα με τη μορφοποίηση που έχουμε ορίσει. Δρ. Κεραμόπουλος Ευκλείδης 28

29 Δρ. Κεραμόπουλος Ευκλείδης 29

30 1. package ADX_project1; 2. import java.beans.*; 3. import java.awt.*; 4. import java.awt.event.*; 5. import javax.swing.*; 6. import java.text.*; 7. import javax.swing.text.*; 8. import java.util.*; 9. class FormattedTFDemo { 10. NumberFormat cf; 11. DateFormat df; 12. JLabel jlab; 13. JFormattedTextField jftfsalary; 14. JFormattedTextField jftfdate; 15. JFormattedTextField jftfempid; 16. JButton jbtnshow; Ορίζουμε ένα αντικείμενο NumberFormat και ένα DateFormat Ορίζουμε τρία αντικείμενα JTextField Δρ. Κεραμόπουλος Ευκλείδης 30

31 17. public FormattedTFDemo() { 18. JFrame jfrm = new JFrame("JFormattedTextField"); 19. jfrm.setlayout(new FlowLayout()); 20. jfrm.setsize(240, 270); 21. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 22. jlab = new JLabel(); 23. try { 24. MaskFormatter mf = new MaskFormatter("##-###"); 25. jftfempid = new JFormattedTextField(mf); 26. } catch (ParseException exc) { 27. System.out.println("Invalid Format"); 28. return; 29. } 30. jftfempid.setcolumns(15); 31. jftfempid.setvalue("24-895"); To μέγιστο μήκος του συστατικού θα είναι 15 Ορίζουμε μία τιμή με βάση το mf Μέσα σε ένα try catch για να διαχειριστούμε τα ParseException ορίζουμε ένα JFormattedTextField το οποίο θα δέχεται αριθμούς στη μορφή ## - ### 32. cf = NumberFormat.getCurrencyInstance(); 33. cf.setmaximumintegerdigits(5); 34. cf.setmaximumfractiondigits(2); 35. jftfsalary = new JFormattedTextField(cf); 36. jftfsalary.setcolumns(15); 37. jftfsalary.setvalue(new Integer(7000)); Ορίζουμε ένα JFormattedTextField για να εμφανίζει ένα αριθμό με χρηματική αναπαράσταση. Δρ. Κεραμόπουλος Ευκλείδης 31

32 38. df = DateFormat.getDateInstance(DateFormat.MEDIUM); 39. jftfdate = new JFormattedTextField(df); 40. jftfdate.setcolumns(15); 41. jftfdate.setvalue(new Date()); Ορίζουμε ένα JFormattedTextField για να εμφανίζει μία ημερομηνία με το τύπο MEDIUM. 42. jftfempid.addpropertychangelistener("value", new PropertyChangeListener() { 43. public void propertychange(propertychangeevent pe) { 44. jlab.settext("employee ID changed."); 45. } 46. }); jftfsalary.addpropertychangelistener("value", new PropertyChangeListener() { 47. public void propertychange(propertychangeevent pe) { 48. jlab.settext("monthly salary changed."); 49. } 50. }); 51. jftfdate.addpropertychangelistener("value", new PropertyChangeListener() { 52. public void propertychange(propertychangeevent pe) { 53. jlab.settext("date hired changed."); 54. } 55. }); όποτε αλλάζει το κείμενο σε κάποιο από τα τρία JTextFormmatted Field τότε ενημερώνεται η αντίστοιχη ετικέτα. Δρ. Κεραμόπουλος Ευκλείδης 32

33 56. jbtnshow = new JButton("Show Updates"); 57. jbtnshow.addactionlistener(new ActionListener() { 58. public void actionperformed(actionevent le) { 59. jlab.settext("<html>employee ID: " + jftfempid.getvalue() "<br>monthly Salary: " + cf.format(jftfsalary.getvalue()) "<br>date Hired: " + df.format(jftfdate.getvalue())); 62. } 63. }); Το νέο κείμενο εμφανίζεται στην ετικέτα jlab με χρήση HTML 64. jfrm.add(new JLabel("Employee ID")); 65. jfrm.add(jftfempid); 66. jfrm.add(new JLabel("Monthly Salary")); 67. jfrm.add(jftfsalary); 68. jfrm.add(new JLabel("Date Hired")); 69. jfrm.add(jftfdate); 70. jfrm.add(jbtnshow); 71. jfrm.add(jlab); 72. jfrm.setvisible(true); 73. } Δρ. Κεραμόπουλος Ευκλείδης 33

34 74. public static void main(string args[]) { 75. SwingUtilities.invokeLater(new Runnable() { 76. public void run() { 77. new FormattedTFDemo(); 78. } 79. }); 80. } 81. } Δρ. Κεραμόπουλος Ευκλείδης 34

35 Με το συστατικό JTextArea μπορούμε να δημιουργήσουμε ένα απλό κείμενο με πολλές γραμμές. Το JTextArea δεν υποστηρίζει κύλιση, γι αυτό θα πρέπει να το τοποθετήσουμε μέσα σε ένα JScrollPane για να έχουμε κύλιση όταν δεν φαίνεται όλο το κείμενο. (Στo NetBeans δημιουργείται αυτόματα μέσα σε JScrollPane) Το JTextArea δημιουργεί γεγονότα σχετικά με το caret. Δρ. Κεραμόπουλος Ευκλείδης 35

36 Σε ένα JTextArea μπορούμε να χρησιμοποιήσουμε τις μεθόδους που κληρονομούνται από το JTextComponent. Επίσης, μπορούμε να ορίσουμε αν θα διπλώνεται το κείμενο σε επόμενη σειρά με τις μεθόδους: void setlinewrap(boolean wrapon) Αν το wrapon είναι true τότε θα διπλώνεται το κείμενο αυτόματα. To false είναι το default. Boolean getlinewrap() Επιστρέφει την κατάσταση αναδίπλωσης. void setwrapstyleword(boolean BreakOnWords); Όταν είναι true τότε το κείμενο διπλώνεται στο τέλος μίας λέξης αλλιώς «σπάει τη λέξη». To false είναι το default. Δρ. Κεραμόπουλος Ευκλείδης 36

37 Οι δομητές που χρησιμοποιούμε για να δημιουργήσουμε ένα συστατικό JTextArea είναι: ΔΟΜΗΤΗΣ JTextArea() JTextArea(String str) JTextArea(int Rows, int Cols) JTextArea(String str, int Rows, int Cols) JTextArea(Document model) ΠΕΡΙΓΡΑΦΗ Δημιουργεί ένα άδειο JTextArea Δημιουργεί ένα JTextArea το οποίο αρχικά περιέχει το κείμενο str. Δημιουργεί έναjtextarea με διαστάσεις RowsXCols Δημιουργεί ένα JTextArea το οποίο αρχικά περιέχει το κείμενο str και έχει διαστάσεις RowsXCols. Δημιουργεί ένα JTextArea βασισμένο στο μοντέλο model. Δρ. Κεραμόπουλος Ευκλείδης 37

38 Μετράει τις λέξεις κάθε φορά που μετακινείται ο caret. Δρ. Κεραμόπουλος Ευκλείδης 38

39 1. package ADX_project1; 2. import java.awt.*; 3. import javax.swing.*; 4. import javax.swing.event.*; 5. class SimpleTextAreaDemo { 6. JLabel jlabwc; 7. JTextArea jta; Δηλώνεται ένα JTextArea αντικείμενο 8. public SimpleTextAreaDemo() { 9. JFrame jfrm = new JFrame("A Simple JTextArea"); 10. jfrm.setlayout(new FlowLayout()); 11. jfrm.setsize(240, 150); 12. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 13. jlabwc = new JLabel("Current word count is 0"); 14. jta = new JTextArea(); 15. jta.setlinewrap(true); 16. jta.setwrapstyleword(true); 17. JScrollPane jscrlp = new JScrollPane(jta); 18. jscrlp.setpreferredsize(new Dimension(100, 75)); Δημιουργείται ένα άδειο JTextArea αντικείμενο το οποίο διπλώνεται στο τέλος μιας λέξης και το βάζουμε μέσα σε ένα JScrollPane Δρ. Κεραμόπουλος Ευκλείδης 39

40 19. jta.addcaretlistener(new CaretListener() { 20. public void caretupdate(caretevent ce) { 21. int wc; 22. String str = jta.gettext(); 23. if(str.length() == 0) 24. wc = 0; 25. else { 26. String [] strsplit = str.split("\\w+"); 27. wc = strsplit.length; 28. if(strsplit.length > 0 && 29. strsplit[0].length() == 0) wc--; 30. } 31. jlabwc.settext("current word count is " + wc); 32. } 33. }); Κάθε φορά που κινείται ο caret μετράει τις λέξεις. Με τη μέθοδο split() σπάει το string σε substrings με διαχωριστικό κάθε σύμβολο που δεν είναι χαρακτήρας. Αυτό δηλώνεται με το regular expression "\\W+" 34. jfrm.add(jscrlp); 35. jfrm.add(jlabwc); 36. jfrm.setvisible(true); 37. } 38. public static void main(string args[]) { 39. SwingUtilities.invokeLater(new Runnable() { 40. public void run() { 41. new SimpleTextAreaDemo(); 42. } 43. }); Δρ. Κεραμόπουλος Ευκλείδης 40

41 void settabsize(int newsize) Ορίζουμε πόσους χαρακτήρες μετακινείται ο caret με το ΤΑΒ. void append(string str) Προσθέτει το κείμενο str στο τέλος του κειμένου. void insert(string str, int idx) Προσθέτει το κείμενο str στη θέση idx του κειμένου. void replacerange(string str, int begin, int end) Αλλάζει με το κείμενο str το κείμενο που βρίσκεται από τη θέση begin μέχρι τη θέση end του κειμένου. int getlinecount() Μετράει τις παραγράφους που περιέχει το κείμενο. Γραμμές που τελειώνουν με newline (ENTER ή RETURN). Δρ. Κεραμόπουλος Ευκλείδης 41

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

43 1. package ADX_project1; 2. import java.io.*; 3. import java.awt.*; 4. import java.awt.event.*; 5. import javax.swing.*; 6. import javax.swing.event.*; 7. class SimpleTextEditor { 8. JLabel jlabmsg; 9. JTextArea jta; 10. JTextField jtffname; 11. JTextField jtffind; 12. JButton jbtnsave; 13. JButton jbtnload; 14. JButton jbtnfind; 15. JButton jbtnfindnext; 16. int findidx; Δημιουργεί τα συστατικά που θα χρησιμοποιήσουμε Δρ. Κεραμόπουλος Ευκλείδης 43

44 17. public SimpleTextEditor() { 18. JFrame jfrm = new JFrame("A Simple Text Editor"); 19. jfrm.setlayout(new FlowLayout()); 20. jfrm.setsize(270, 420); 21. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 22. jlabmsg = new JLabel(); 23. jlabmsg.setpreferredsize(new Dimension(200, 30)); 24. jlabmsg.sethorizontalalignment(swingconstants.center); 25. JLabel jlabseparator = new JLabel(); 26. jlabseparator.setpreferredsize(new Dimension(200, 30)); 27. JLabel jlabfind = new JLabel("Search For:"); 28. jlabfind.setpreferredsize(new Dimension(70, 20)); 29. jlabfind.sethorizontalalignment(swingconstants.right); 30. JLabel jlabfilename = new JLabel("Filename:"); Ορίζει τις ετικέτες όλων των ενεργητικών συστατικών 31. jlabfilename.setpreferredsize(new Dimension(70, 20)); 32. jlabfilename.sethorizontalalignment(swingconstants.right); 33. jta = new JTextArea(); 34. JScrollPane jscrlp = new JScrollPane(jta); 35. jscrlp.setpreferredsize(new Dimension(250, 200)); 36. jtffname = new JTextField(15); Ορίζει ένα JTextArea μέσα σε JScrollPane χωρίς να επιτρέπεται η αναδίπλωση του κειμένου Δρ. Κεραμόπουλος Ευκλείδης 44

45 37. jta.addcaretlistener(new CaretListener() { 38. public void caretupdate(caretevent ce) { 39. String str = jta.gettext(); 40. jlabmsg.settext("current size: " + str.length()); 41. findidx = jta.getcaretposition(); 42. } 43. }); Κάθε φορά που μετακινείται ο caret βρίσκει τον αριθμό των χαρακτήρων του κειμένου και ορίζει τη μεταβλητή findidx στη θέση του caret. 44. jbtnsave = new JButton("Save File"); 45. jbtnload = new JButton("Load File"); 46. jbtnsave.addactionlistener(new ActionListener() { 47. public void actionperformed(actionevent le) { 48. save(); 49. } 50. }); 51. jbtnload.addactionlistener(new ActionListener() { 52. public void actionperformed(actionevent le) { 53. load(); 54. } 55. }); Δρ. Κεραμόπουλος Ευκλείδης 45

46 56. jtffind = new JTextField(15); 57. jbtnfind = new JButton("Find From Top"); 58. jbtnfindnext = new JButton("Find Next"); 59. jbtnfind.addactionlistener(new ActionListener() { 60. public void actionperformed(actionevent le) { 61. findidx = 0; 62. find(findidx); 63. } 64. }); 65. jbtnfindnext.addactionlistener(new ActionListener() { 66. public void actionperformed(actionevent le) { 67. find(findidx+1); 68. } 69. }); Δρ. Κεραμόπουλος Ευκλείδης 46

47 70. Container cp = jfrm.getcontentpane(); 71. cp.add(jscrlp); 72. cp.add(jlabfind); 73. cp.add(jtffind); 74. cp.add(jbtnfind); 75. cp.add(jbtnfindnext); 76. cp.add(jlabseparator); 77. cp.add(jlabfilename); 78. cp.add(jtffname); 79. cp.add(jbtnsave); 80. cp.add(jbtnload); 81. cp.add(jlabmsg); 82. jfrm.setvisible(true); 83. } Δρ. Κεραμόπουλος Ευκλείδης 47

48 84. void save() { 85. FileWriter fw; 86. String fname = jtffname.gettext(); 87. if(fname.length() == 0) { 88. jlabmsg.settext("no filename present."); 89. return; 90. } 91. try { 92. fw = new FileWriter(fname); 93. jta.write(fw); 94. fw.close(); 95. } catch(ioexception exc) { 96. jlabmsg.settext("error opening or writing file."); 97. return; 98. } 99. jlabmsg.settext("file written successfully."); 100. } Η μέθοδος αποθήκευσης. Ελέγχει αν το όνομα που περιέχει το jtffname έχει τιμή. Αν έχει τότε χρησιμοποιεί τη μέθοδο write για να γράψει στο αρχείο όλο το περιεχόμενο του συστατικού JTextArea jta Δρ. Κεραμόπουλος Ευκλείδης 48

49 101. void load() { 102. FileReader fw; 103. String fname = jtffname.gettext(); 104. if(fname.length() == 0) { 105. jlabmsg.settext("no filename present."); 106. return; 107. } 108. try { 109. fw = new FileReader(fname); 110. jta.read(fw, null); 111. fw.close(); 112. } catch(ioexception exc) { 113. jlabmsg.settext("error opening or reading file."); 114. return; 115. } 116. findidx = 0; 117. jlabmsg.settext("file loaded successfully."); 118. } Η μέθοδος ανοίγματος ενός αρχείου. Ελέγχει αν το όνομα που περιέχει το jtffname έχει τιμή. Αν έχει τότε χρησιμοποιεί τη μέθοδο read για τοποθετήσει το κείμενο που περιέχει το αρχείο στο συστατικό JTextArea jta Δρ. Κεραμόπουλος Ευκλείδης 49

50 120. void find(int start) { 121. String str = jta.gettext(); 122. String findstr = jtffind.gettext(); 123. int idx = str.indexof(findstr, start); 124. if(idx > -1) { 125. jta.setcaretposition(idx); 126. findidx = idx; 127. jlabmsg.settext("string found."); 128. } 129. else 130. jlabmsg.settext("string not found."); 131. jta.requestfocusinwindow(); 132. } Η μέθοδος εύρεσης. Η μέθοδος str.indexof(αλφαριθμητικό, θέση) επιστρέφει που βρίσκει για πρώτη φορά το αλφαριθμητικό μέσα στο str ξεκινώντας από τη θέση θέση. Επιστρέφει -1 αν δεν βρει τίποτα 133. public static void main(string args[]) { 134. SwingUtilities.invokeLater(new Runnable() { 135. public void run() { 136. new SimpleTextEditor(); 137. } 138. }); 139. } 140. } Δρ. Κεραμόπουλος Ευκλείδης 50

51 επόμενη ενότητα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Μία πρώτη μικρή γεύση των δυνατοτήτων της Swing. Παράδειγμα Δυνατοτήτων Swing Δρ. Κεραμόπουλος Ευκλείδης 2 To JAVA SWING είναι ένα API της JAVA το οποίο χρησιμοποιείται για την κατασκευή

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

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

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

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

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

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

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

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

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

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

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

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

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

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

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

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

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

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

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου 11 Εργαλεία έκφρασης και δημιουργίας Επεξεργασία Κειμένου Α Γυμνασίου Πρακτικές οδηγίες για την Επεξεργασία Κειμένου Ένα πρόγραμμα επεξεργασίας κειμένου μας προσφέρει τη δυνατότητα να: προσθέτουμε, να

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων

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

Εργαστήριο Εφαρμοσμένης Πληροφορικής

Εργαστήριο Εφαρμοσμένης Πληροφορικής Τμήμα Φυσικής - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Εργαστήριο Εφαρμοσμένης Πληροφορικής Ομάδα Α. Προετοιμασία Αναφοράς Εργασία-2: Σύνθεση αναφοράς Σύνθεση Αναφοράς http://eep.physics.auth.gr Τι περιέχει

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

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

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 /

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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. Ιδιαίτερα

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

Week 10: Graphical User Interfaces

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

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

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

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

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

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Προγραμματισμός 2 Σημειώσεις εργαστηρίου Προγραμματισμός 2 Σημειώσεις εργαστηρίου 02-Java, Τύποι Δεδομένων ως Αντικείμενα Νεβράντζας Βάιος-Γερμανός Λάρισα, Μάρτιος 2013 02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 1 Περίληψη

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

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

Mεταβλητές (variables) και Σταθερές (constants)

Mεταβλητές (variables) και Σταθερές (constants) Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε

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

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

Εργαστήριο 4 - Άσκηση - Ανάλυση Εργαστήριο 4 - Άσκηση - Ανάλυση Εκφώνηση: ηµιουργείστε την εφαρµογή «Audio Player» σε Java Swing µε χρήση NetBeans ακολουθώντας τις αρακάτω οδηγίες. 1. Η εφαρµογή θα σχεδιασθεί σε ένα εξωτερικό υ οδοχέα

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

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω: 3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται

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

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Linear Data Structures) Ας θεωρήσουµε µία δοµή δεδοµένων το σύνολο των στοιχείων της οποίας είναι διατεταγµένο µε τέτοιο τρόπο ώστε να ισχύουν τα εξής: (α) υπάρχει ένα µόνο

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

Generics και ArrayLists

Generics και ArrayLists ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Generics και ArrayLists Προσοχή!!! Να εκτελεστούν πρώτα όλες οι ασκήσεις τις Θεωρίας

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

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

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

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

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

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

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

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

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

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

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

public class ArrayStack implements Stack {

public class ArrayStack implements Stack { public class ArrayStack implements Stack { private static final int DEF_STACK_SIZE=2; //Array of objects private Object[] S; private int index ; // index, top, last, position // Returns the last item of

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

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

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

Εργαστήριο 10 Άσκηση 1 - Ανάλυση Εργαστήριο 10 Άσκηση 1 - Ανάλυση Εκφώνηση: Στο moodle σας δίνονται οι εικόνες έξι ηρώων της ταινίας Star Wars. Για κάθε ήρωα σας δίνεται µία µεγάλη και µία µικρή εικόνα. Ε ίσης, σας δίνονται και οι εικόνες

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

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βιβλιοθήκες ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΒΙΒΛΙΟΘΗΚΗ JAVA ΒΑΣΙΚΗ ΒΙΒΛΙΟΘΗΚΗ

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

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

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

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

Εισαγωγή στον Προγ/μό Η/Υ

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε

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

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

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 9 o ΕΡΓΑΣΤΗΡΙO ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 9 o ΕΡΓΑΣΤΗΡΙO H φόρµα µε τίτλο «Simple Editor» θα έχει δυνατότητα ανάγνωσης και αποθήκευσης ενός απλού text αρχείου χρησιµοποιώντας Μενού και FileChooser αντί διαλόγων.

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

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

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (java threads)

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (java threads) Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

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

Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel

Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel 11.1. Πολλαπλά φύλλα εργασίας Στο προηγούμενο κεφάλαιο δημιουργήσαμε ένα φύλλο εργασίας με τον προϋπολογισμό δαπανών του προσωπικού που θα συμμετάσχει

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

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

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors). Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι

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

Week 12: GUIs with Swing

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

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

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!! Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο Τελική Εξέταση

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2008 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2008 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες. ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2008 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες. Θέμα 1. Δημιουργήστε μια κλάση αντικειμένων Complex η οποία να περιγράφει

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

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

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

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο

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