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

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

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

Transcript

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

2 Το Scroll Bar ήταν ένα από τα κύρια συστατικά της επιτυχίας των γραφικών διεπιφανειών ενώ και ένα από τα ελάχιστα συστατικά που διατηρούνται στη ίδια μορφή από τη στιγμή παρουσίασης τους. Το slider και το progress bar είναι νεότερα συστατικά που ακολουθούν τη φιλοσοφία του scroll bar. Και τα τρία παρουσιάζουν έναν κινούμενο δείκτη σε ένα περιορισμένο εύρος τιμών. Στην Java Swing και τα τρία συστατικά περιγράφονται στη διεπαφή BoundedRangeModel. Δρ. Κεραμόπουλος Ευκλείδης 2

3 Το μοντέλο περιγράφεται από τέσσερις τιμές: Την ελάχιστη τιμή το κάτω όριο στο εύρος τιμών (default 0) Την έκταση το πάχος του scroll bar εκτός του δείκτη. (default 0) Το άθροισμα του δείκτη και της έκτασης θα πρέπει να είναι μικρότερο ή ίσο της μέγιστης τιμής. Την τρέχουσα τιμή Θα πρέπει η τιμή της να είναι μεταξύ της ελάχιστης και της μέγιστης τιμής (default 0) Τη μέγιστη τιμή το πάνω όριο στο εύρος τιμών (default 100) Δρ. Κεραμόπουλος Ευκλείδης 3

4 Χρήσιμες μέθοδοι: Μέθοδος int getextent() int getmaximum() int getminimum() int getvalue() boolean getvalueisadjusting() void setextent(int val) void setmaximum(int max) void setminumum(int min) void setrangeproperties(int val, int ext, int min, int max, boolean isadj) void setvalue(int val) void setvalueisadjusting(boolean val) Περιγραφή Επιστρέφει την τιμή της έκτασης Επιστρέφει την τιμή του μέγιστου ορίου Επιστρέφει την τιμή του ελάχιστου ορίου Επιστρέφει την τιμή της τρέχουσας τιμής Έχει γίνει κάποια μεταβολή; Θέτει την τιμή της έκτασης Θέτει την τιμή του μέγιστου ορίου Θέτει την τιμή του ελάχιστου ορίου Θέτει όλες τις ιδιότητες Θέτει την τιμή της τρέχουσας τιμής Αν είναι true τότε έχει γίνει κάποια μεταβολή. Δρ. Κεραμόπουλος Ευκλείδης 4

5 Η γραμμή κύλισης χρησιμοποιείται για να μετακινεί πληροφορίες μέσα σε ένα παράθυρο. Στη Java Swing η γραμμή κύλισης δημιουργείται ως αντικείμενο της τάξης JScrollBar. Η συμπεριφορά ενός αντικειμένου υπακούει στο μοντέλο BoundedRangeModel και επεκτείνει την διεπαφή java.awt.adjustable Μία γραμμή κύλισης αποτελείται: Από το δείκτη (thumb), τον οποίο μπορούμε να σύρουμε Από βέλη (arrows) σε κάθε άκρη, πατώντας το βέλος μετακινείται κατά μία μονάδα κατά τη διεύθυνση του βέλους ο δείκτης Από τη μπάρα (paging area), πατώντας μέσα στη γραμμή κύλισης μετακινείται ο δείκτης με άλμα προς την αντίστοιχη κατεύθυνση. Δρ. Κεραμόπουλος Ευκλείδης 5

6 Οι δομητές της γραμμής κύλισης είναι: JScrollBar() ΔΟΜΗΤΕΣ JScrollBar(int VorH) JScrollBar(int VorH, int initialvalue, int extent, int min, int max) Αρχικές τιμές ΠΕΡΙΓΡΑΦΗ Δημιουργεί μία γραμμή κύλισης η οποία χρησιμοποιεί τις αρχικές (default) τιμές. Δημιουργεί μία γραμμή κύλισης με κατεύθυνση την παράμετρο VorH. Οριζόντια για τιμή JScrollBar.HORIZONTAL Κάθετη για τιμή JScrollBar.VERTICAL Δημιουργεί μία γραμμή κύλισης όπως ορίζεται από τις παραμέτρους. vorh: JScrollBar.VERTICAL initialvalue: 10 extent: 0 min: 0 max: 100 Δρ. Κεραμόπουλος Ευκλείδης 6

7 Η γραμμή κύλισης υποστηρίζει τις μεθόδους που περιγράφτηκαν για το μοντέλο BoundedRangeModel, όπως επίσης και τις παρακάτω: Μέθοδος int getvisibleamount() void setvisibleamount(int val) void setvalues(int value, int visibleamount, int min, int max) int getunitincrement() void setunitincrement(int val) int getblockincrement() void setblockincrement(int val) Περιγραφή Επιστρέφει την τιμή της έκτασης (extent) Ορίζει την έκταση (extent) Μπορούν να οριστούν όλες οι παράμετροι Επιστρέφει την τιμή του βήματος μετακίνησης (unit increment αρχική τιμή είναι 1) Ορίζει την τιμή του βήματος μετακίνησης Επιστρέφει την τιμή του «άλματος μετακίνησης» (block increment αρχική τιμή 10) Ορίζει την τιμή του άλματος μετακίνησης Δρ. Κεραμόπουλος Ευκλείδης 7

8 Η γραμμή κύλισης δημιουργεί το γεγονός AdjustmentEvent το οποίο αντιλαμβάνεται από τον ακροατή AdjustmentListener και υποστηρίζεται από τη μέθοδο void adjustmentvaluechanged(adjustmentevent ae) Δρ. Κεραμόπουλος Ευκλείδης 8

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

10 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; class SBDemo { 7. JLabel jlabvert; 8. JLabel jlabhoriz; 9. JLabel jlabsbinfo; 10. JScrollBar jsbvert; 11. JScrollBar jsbhoriz; Δήλωση γραμμών κύλισης 12. SBDemo() { 13. JFrame jfrm = new JFrame("Demonstrate Scroll Bars"); 14. jfrm.getcontentpane().setlayout(new FlowLayout()); 15. jfrm.setsize(260, 260); 16. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 17. jlabvert = new JLabel("Value of vertical scroll bar: 0"); 18. jlabhoriz = new JLabel("Value of horizontal scroll bar: 0"); 19. jsbvert = new JScrollBar(); 20. jsbhoriz = new JScrollBar(Adjustable.HORIZONTAL); Η γραμμή κύλισης ορίζεται Οριζόντια Δρ. Κεραμόπουλος Ευκλείδης 10

11 21. jsbvert.addadjustmentlistener(new AdjustmentListener() { 22. public void adjustmentvaluechanged(adjustmentevent ae) { 23. if(jsbvert.getvalueisadjusting()) return; 24. jlabvert.settext("value of vertical scroll bar: + ae.getvalue()); 25. } 26. }); Όσο αλλάζει η κατάσταση της γραμμής κύλισης τότε δεν γίνεται τίποτα 27. jsbhoriz.addadjustmentlistener(new AdjustmentListener() { 28. public void adjustmentvaluechanged(adjustmentevent ae) { 29. jlabhoriz.settext("value of horizontal scroll bar: + ae.getvalue()); 30. } 31. }); Εμφανίζεται η θέση του δείκτη 32. jlabsbinfo = new JLabel("<html>Scroll Bar Defaults<br>" "Minimum value: " + jsbvert.getminimum() + "<br>" "Maximum value: " + jsbvert.getmaximum() + "<br>" "Visible amount (extent): " + jsbvert.getvisibleamount() + "<br>" "Block increment: " + jsbvert.getblockincrement() + "<br>" "Unit increment: " + jsbvert.getunitincrement()); Εμφανίζονται όλες οι αρχικές τιμές των παραμέτρων των γραμμών κύλισης Δρ. Κεραμόπουλος Ευκλείδης 11

12 38. jfrm.add(jsbvert); 39. jfrm.add(jsbhoriz); 40. jfrm.add(jlabvert); 41. jfrm.add(jlabhoriz); 42. jfrm.add(jlabsbinfo); 43. jfrm.setvisible(true); 44. } 45. public static void main(string args[]) { 46. SwingUtilities.invokeLater(new Runnable() { 47. public void run() { 48. new SBDemo(); 49. } 50. }); 51. } 52. } Δρ. Κεραμόπουλος Ευκλείδης 12

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

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

15 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class CustomSBDemo { 6. JLabel jlabvert; 7. JLabel jlabhoriz; 8. JLabel jlabvsbinfo; 9. JLabel jlabhsbinfo; 10. JScrollBar jsbvert; 11. JScrollBar jsbhoriz; 12. CustomSBDemo() { 13. JFrame jfrm = new JFrame("Scroll Bars Properties"); 14. jfrm.getcontentpane().setlayout(new FlowLayout()); 15. jfrm.setsize(260, 500); 16. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 17. jlabvert = new JLabel("Value of vertical scroll bar: 0"); 18. jlabhoriz = new JLabel("Value of horizontal scroll bar: 250"); 19. jsbvert = new JScrollBar(JScrollBar.VERTICAL, 0, 5, 0, 500); 20. jsbhoriz = new JScrollBar(Adjustable.HORIZONTAL, 250, 0, 0, 500); Δημιουργούμε δύο γραμμές κύλισης. Δρ. Κεραμόπουλος Ευκλείδης 15

16 21. jsbvert.setpreferredsize(new Dimension(30, 200)); 22. jsbhoriz.setpreferredsize(new Dimension(200, 10)); 23. jsbhoriz.setblockincrement(25); 24. jsbvert.addadjustmentlistener(new AdjustmentListener() { 25. public void adjustmentvaluechanged(adjustmentevent ae) { 26. if(jsbvert.getvalueisadjusting()) return; 27. jlabvert.settext("value of vertical scroll bar: " + ae.getvalue()); 28. } 29. }); Ορίζουμε το μέγεθος των γραμμών κύλισης Αλλάζουμε το άλμα μετακίνησης 30. jsbhoriz.addadjustmentlistener(new AdjustmentListener() { 31. public void adjustmentvaluechanged(adjustmentevent ae) { 32. jlabhoriz.settext("value of horizontal scroll bar: " + ae.getvalue()); 33. } 34. }); 35. jlabvsbinfo = new JLabel("<html>Vertical Scroll Bar:<br>" "Minimum value: " + jsbvert.getminimum() + "<br>" "Maximum value: " + jsbvert.getmaximum() + "<br>" "Visible amount (extent): " + jsbvert.getvisibleamount() + "<br>" "Block increment: " + jsbvert.getblockincrement() + "<br>" "Unit increment: " + jsbvert.getunitincrement()); 41. jlabhsbinfo = new JLabel("<html>Horizontal Scroll Bar:<br>" "Minimum value: " + jsbhoriz.getminimum() + "<br>" "Maximum value: " + jsbhoriz.getmaximum() + "<br>" "Visible amount (extent): " + jsbhoriz.getvisibleamount() + "<br>" "Block increment: " + jsbhoriz.getblockincrement() + "<br>" "Unit increment: " + jsbhoriz.getunitincrement()); Δρ. Κεραμόπουλος Ευκλείδης 16

17 47. jfrm.add(jsbvert); 48. jfrm. add(jsbhoriz); 49. jfrm. add(jlabvert); 50. jfrm. add(jlabhoriz); 51. jfrm. add(jlabvsbinfo); 52. jfrm. add(jlabhsbinfo); 53. jfrm.setvisible(true); 54. } 55. public static void main(string args[]) { 56. SwingUtilities.invokeLater(new Runnable() { 57. public void run() { 58. new CustomSBDemo(); 59. } 60. }); 61. } 62. } Δρ. Κεραμόπουλος Ευκλείδης 17

18 Το JScrollPane είναι ένα συστατικό της Java Swing το οποίο έχει ενσωματωμένες γραμμές κύλισης σε ένα υποδοχέα pane. Δρ. Κεραμόπουλος Ευκλείδης 18

19 Με το σημείο κύλισης επιλέγουμε μία τιμή από ένα εύρος τιμών. Στη Java Swing το σημείο κύλισης δημιουργείται ως αντικείμενο της τάξης JSlider. Η συμπεριφορά ενός αντικειμένου υπακούει στο μοντέλο BoundedRangeModel. Δρ. Κεραμόπουλος Ευκλείδης 19

20 ΔΟΜΗΤΕΣ JSlider() JSlider(int min, int max) JSlider(int min, int max, int val) JSlider(int VorH) JSlider(int VorH, int min, int max, int val) JSlider(BoundRangeModel model) Αρχικές τιμές ΠΕΡΙΓΡΑΦΗ Δημιουργεί ένα slider με τις αρχικές τιμές. Δημιουργεί ένα slider με παραμέτρους min και max Δημιουργεί ένα slider με παραμέτρους min και max και val (αρχική τιμή). Δημιουργεί ένα slider με παράμετρο την κατεύθυνση (αν VorH είναι JSlider.HORIZONTAL τότε είναι οριζόντια ενώ αν είναι το VorH JSlider.VERTICAL τότε είναι κάθετο) Δημιουργεί ένα slider με παραμέτρους VorH, min, max και val όπως εξηγήθηκαν παραπάνω. Δημιουργεί ένα slider με παραμέτρους που προέρχονται από το model όπως έχουν δηλωθεί. vorh: JSlider.HORIZONTAL initialvalue: 50 extent: 0 min: 0 max: 100 Δρ. Κεραμόπουλος Ευκλείδης 20

21 Το σημείο κύλισης δημιουργεί το γεγονός ChangeEvent το οποίο αντιλαμβάνεται από τον ακροατή ChangeListener και υποστηρίζεται από τη μέθοδο void statechanged(changeevent ce) Δρ. Κεραμόπουλος Ευκλείδης 21

22 Με το δομητή δημιουργείται ένα slider χωρίς ετικέτες ή σημάδια Για να προσθέσουμε σημάδια θα πρέπει να χρησιμοποιήσουμε τις μεθόδους void setmajortickspacing(int incr); void setminortickspacing(int incr); Όπου incr είναι ο αριθμός των σημείων μεταξύ των σημαδιών. void setpaintticks(boolean on); για να τα εμφανίσουμε τα σημάδια που δηλώσαμε. Δρ. Κεραμόπουλος Ευκλείδης 22

23 Για να προσθέσουμε ετικέτες θα πρέπει να χρησιμοποιήσουμε τις μεθόδους void setlabeltable(dictionary labs); Όπου labs είναι μία συλλογή αντιστοιχίας τιμών ετικετών με τα σημάδια Με τη μέθοδο createstandardlabels(int incr) μπορούμε να χρησιμοποιήσουμε ετικέτες που μας προσφέρει η java Swing. Void setpaintlabels(boolean on) εμφανίζουμε τις ετικέτες που δηλώσαμε. Δρ. Κεραμόπουλος Ευκλείδης 23

24 Χρήσιμες μέθοδοι για τη χρήση των sliders είναι Dictionary getlabeltable() Επιστρέφει τον πίνακα των ετικετών int getmajortickspacing() Επιστρέφει το βήμα για τα μεγάλα σημάδια int getminortickspacing() Επιστρέφει το βήμα για τα μικρά σημάδια boolean getpaintedlabels() Επιστρέφει αν στο slider υπάρχουν ετικέτες boolean getpaintedticks() Επιστρέφει στο slider αν υπάρχουν σημάδια Δρ. Κεραμόπουλος Ευκλείδης 24

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

26 1. package ADX_project1; 2. import java.awt.*; 3. import javax.swing.*; 4. import javax.swing.event.*; 5. class SliderDemo { 6. JLabel jlabvert; 7. JLabel jlabhoriz; 8. JSlider jsldrhoriz; 9. JSlider jsldrvert; 10. SliderDemo() { 11. JFrame jfrm = new JFrame("Demonstrate Sliders"); 12. jfrm.setlayout(new FlowLayout()); 13. jfrm.setsize(300, 300); 14. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 15. jsldrvert = new JSlider(JSlider.VERTICAL); 16. jsldrhoriz = new JSlider(); 17. jsldrvert.setmajortickspacing(10); 18. jsldrhoriz.setmajortickspacing(20); 19. jsldrvert.setminortickspacing(5); Δημιουργούμε δύο slider Ορίζουμε τα σημάδια Δρ. Κεραμόπουλος Ευκλείδης 26

27 20. jsldrvert.setlabeltable(jsldrvert.createstandardlabels(10)); 21. jsldrhoriz.setlabeltable(jsldrhoriz.createstandardlabels(20)); 22. jsldrvert.setpaintticks(true); 23. jsldrhoriz.setpaintticks(true); 24. jsldrvert.setpaintlabels(true); 25. jsldrhoriz.setpaintlabels(true); 26. jlabhoriz = new JLabel("Value of horizontal slider: " jsldrhoriz.getvalue()); 28. jlabvert = new JLabel("Value of vertical slider: " jsldrvert.getvalue()); Ορίζουμε τις ετικέτες Εμφανίζουμε τα σημάδια και τις ετικέτες 30. jsldrhoriz.addchangelistener(new ChangeListener() { 31. public void statechanged(changeevent ce) { 32. if(jsldrhoriz.getvalueisadjusting()) return; 33. jlabhoriz.settext("value of horizontal slider: " jsldrhoriz.getvalue()); 35. } 36. }); Δρ. Κεραμόπουλος Ευκλείδης 27

28 40. jsldrvert.addchangelistener(new ChangeListener() { 41. public void statechanged(changeevent ce) { 42. jlabvert.settext("value of vertical slider: " jsldrvert.getvalue()); 44. } 45. }); 46. jfrm.add(jsldrhoriz); 47. jfrm.add(jsldrvert); 48. jfrm.add(jlabhoriz); 49. jfrm.add(jlabvert); 50. jfrm.setvisible(true); 51. } 52. public static void main(string args[]) { 53. SwingUtilities.invokeLater(new Runnable() { 54. public void run() { 55. new SliderDemo(); 56. } 57. }); 58. } 59. } Δρ. Κεραμόπουλος Ευκλείδης 28

29 Χρήσιμες μέθοδοι για τη χρήση των sliders είναι void setsnaptoticks(boolean on) Μετακινεί τον δείκτη από σημάδι σε σημάδι boolean getsnaptoticks() Επιστρέφει αν έχει οριστεί η αυτόματη μετακίνηση void setinverted(boolean on) Αλλάζει φορά (όταν είναι true) στο εύρος τιμών boolean getinverted() Επιστρέφει αν το εύρος τιμών είναι inverted ή όχι Δρ. Κεραμόπουλος Ευκλείδης 29

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

31 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. import javax.swing.event.*; 6. import java.text.*; 7. import java.util.*; 8. class Presets { 9. int bass; 10. int midrange; 11. int treble; 12. int balance; 13. int volume; 14. Presets(int b, int m, int t, int bl, int v) { 15. bass = b; 16. midrange = m; 17. treble = t; 18. balance = bl; 19. volume = v; 20. } 21. } Χρησιμοποιούμε την τάξη Presets για να αποθηκεύουμε τις προτιμήσεις του χρήστη Δρ. Κεραμόπουλος Ευκλείδης 31

32 22. class AudioPlayer implements ChangeListener { 23. JLabel jlabbass; 24. JLabel jlabmidrange; 25. JLabel jlabtreble; 26. JLabel jlabbalance; 27. JLabel jlabvolume; 28. JLabel jlabinfo; 29. JSlider jsldrbass; 30. JSlider jsldrmidrange; 31. JSlider jsldrtreble; 32. JSlider jsldrbalance; 33. JSlider jsldrvolume; 34. JRadioButton jrbpreset1; 35. JRadioButton jrbpreset2; 36. JRadioButton jrbdefaults; 37. JButton jbtnstore; Presets[] presets; Μέθοδος η οποία δημιουργεί μία συγκεκριμένη δομή στους πραγματικούς αριθμούς Δρ. Κεραμόπουλος Ευκλείδης 32

33 40. AudioPlayer() { 41. JFrame jfrm = new JFrame("A Simple Audio Player Interface"); 42. jfrm.setlayout(new FlowLayout()); 43. jfrm.setsize(340, 520); 44. jfrm.setdefaultcloseoperation(jframe.exit_on_close); setuppresets(); 47. setupsliders(); 48. setuplabels(); 49. setuprbuttons(); 50. jbtnstore = new JButton("Store Settings"); Δημιουργεί τα συστατικά με συγκεκριμένες μεθόδους 51. jsldrbass.addchangelistener(this); 52. jsldrmidrange.addchangelistener(this); 53. jsldrtreble.addchangelistener(this); 54. jsldrbalance.addchangelistener(this); 55. jsldrvolume.addchangelistener(this); Δημιουργεί ακροατές Δρ. Κεραμόπουλος Ευκλείδης 33

34 56. jbtnstore.addactionlistener(new ActionListener() { 57. public void actionperformed(actionevent ae) { 58. if(jrbpreset1.isselected()) 59. storepreset(presets[1]); 60. else if(jrbpreset2.isselected()) 61. storepreset(presets[2]); 62. } 63. }); 64. jrbdefaults.addactionlistener(new ActionListener() { 65. public void actionperformed(actionevent ae) { 66. loadpreset(presets[0]); 67. } 68. }); 69. jrbpreset1.addactionlistener(new ActionListener() { 70. public void actionperformed(actionevent ae) { 71. loadpreset(presets[1]); 72. } 73. }); 74. jrbpreset2.addactionlistener(new ActionListener() { 75. public void actionperformed(actionevent ae) { 76. loadpreset(presets[2]); 77. } 78. }); Δημιουργεί ακροατές και αντίστοιχες μεθόδους για το χειρισμό των γεγονότων Δρ. Κεραμόπουλος Ευκλείδης 34

35 jfrm.add(jlabbass); 81. jfrm.add(jsldrbass); 82. jfrm.add(jlabmidrange); 83. jfrm.add(jsldrmidrange); 84. jfrm.add(jlabtreble); 85. jfrm.add(jsldrtreble); 86. jfrm.add(jlabbalance); 87. jfrm.add(jsldrbalance); 88. jfrm.add(jlabvolume); 89. jfrm.add(jsldrvolume); 90. jfrm.add(jrbdefaults); 91. jfrm.add(jrbpreset1); 92. jfrm.add(jrbpreset2); 93. jfrm.add(jbtnstore); Προσθέτει τα συστατικά στον υποδοχεά jfrm.add(jlabinfo); 96. jfrm.setvisible(true); 97. } Δρ. Κεραμόπουλος Ευκλείδης 35

36 98. public void statechanged(changeevent ce) { 99. showsettings(); 100. } Δείχνει τις ρυθμίσεις 101. void setupsliders() { 102. jsldrbass = new JSlider(-10, 10); 103. jsldrmidrange = new JSlider(-10, 10); 104. jsldrtreble = new JSlider(-10, 10); 105. jsldrvolume = new JSlider(0, 10, 0); 106. jsldrbalance = new JSlider(-5, 5); Δημιουργεί αρχικά τα sliders 107. jsldrbass.setmajortickspacing(2); 108. jsldrmidrange.setmajortickspacing(2); 109. jsldrtreble.setmajortickspacing(2); 110. jsldrvolume.setmajortickspacing(1); 111. jsldrbalance.setmajortickspacing(1); Προσθέτει τα μεγάλα σημάδια 112. jsldrbass.setminortickspacing(1); 113. jsldrmidrange.setminortickspacing(1); 114. jsldrtreble.setminortickspacing(1); Προσθέτει τα μικρά σημάδια Δρ. Κεραμόπουλος Ευκλείδης 36

37 115. Hashtable table = new Hashtable(); 116. for(int i = -10; i <= 0; i += 2) 117. table.put(new Integer(i), new JLabel("" + i)); 118. for(int i = 2; i <= 10; i += 2) 119. table.put(new Integer(i), new JLabel("+" + i)); Το hashtable αντιστοιχεί λέξεις κλειδιά σε αριθμούς 120. jsldrtreble.setlabeltable(table); 121. jsldrmidrange.setlabeltable(table); 122. jsldrbass.setlabeltable(table); Προσθέτει τις ετικέτες για sliders 123. table = new Hashtable(); 124. table.put(new Integer(0), new JLabel("Center")); 125. table.put(new Integer(-5), new JLabel("L")); 126. table.put(new Integer(5), new JLabel("R")); 127. jsldrbalance.setlabeltable(table); Δημιουργεί ετικέτες (L, Center, R) για το slider balance 128. jsldrvolume.setlabeltable(jsldrvolume.createstandardlabels(1)); Προσθέτει τις standard ετικέτες για το slider volume Δρ. Κεραμόπουλος Ευκλείδης 37

38 129. jsldrbass.setpaintticks(true); 130. jsldrmidrange.setpaintticks(true); 131. jsldrtreble.setpaintticks(true); 132. jsldrvolume.setpaintticks(true); 133. jsldrbalance.setpaintticks(true); 134. jsldrbass.setpaintlabels(true); 135. jsldrmidrange.setpaintlabels(true); 136. jsldrtreble.setpaintlabels(true); 137. jsldrvolume.setpaintlabels(true); 138. jsldrbalance.setpaintlabels(true); 139. jsldrbass.setsnaptoticks(true); 140. jsldrmidrange.setsnaptoticks(true); 141. jsldrtreble.setsnaptoticks(true); 142. jsldrvolume.setsnaptoticks(true); 143. jsldrbalance.setsnaptoticks(true); Dimension sldrsize = new Dimension(240, 60); 146. jsldrbass.setpreferredsize(sldrsize); 147. jsldrmidrange.setpreferredsize(sldrsize); 148. jsldrtreble.setpreferredsize(sldrsize); 149. jsldrvolume.setpreferredsize(sldrsize); 150. jsldrbalance.setpreferredsize(sldrsize); 151. } Εμφανίζει σημάδια και ετικέτες όλων των sliders Ορίζει μετακίνηση στο κοντινότερο σημάδι Ορίζει τις αρχικές διαστάσεις των slider Δρ. Κεραμόπουλος Ευκλείδης 38

39 152. void setuplabels() { 153. jlabtreble = new JLabel("Treble"); 154. jlabmidrange = new JLabel("Midrange"); 155. jlabbass = new JLabel("Bass"); 156. jlabvolume = new JLabel("Volume"); 157. jlabbalance = new JLabel("Balance"); 158. Dimension labsize = new Dimension(60, 25); 159. jlabtreble.setpreferredsize(labsize); 160. jlabmidrange.setpreferredsize(labsize); 161. jlabbass.setpreferredsize(labsize); 162. jlabvolume.setpreferredsize(labsize); 163. jlabbalance.setpreferredsize(labsize); Ορίζει το περιεχόμενο και τις διαστάσεις των ετικετών 164. jlabinfo = new JLabel(""); 165. jlabinfo.setpreferredsize(new Dimension(110, 100)); 166. showsettings(); 167. } Δρ. Κεραμόπουλος Ευκλείδης 39

40 168. void setuprbuttons() { 169. jrbdefaults = new JRadioButton("Defaults"); 170. jrbpreset1 = new JRadioButton("Preset 1"); 171. jrbpreset2 = new JRadioButton("Preset 2"); 172. ButtonGroup bg = new ButtonGroup(); 173. bg.add(jrbdefaults); 174. bg.add(jrbpreset1); 175. bg.add(jrbpreset2); 176. jrbdefaults.setselected(true); 177. } 178. void showsettings() { 179. String bal; 180. int b = jsldrbalance.getvalue(); 181. if(b > 0) 182. bal = "Right " + String.valueOf(jsldrBalance.getValue()); 183. else if(b==0) 184. bal = "Center"; 185. else 186. bal = "Left " + String.valueOf(-jsldrBalance.getValue()); 187. jlabinfo.settext("<html>treble: " + jsldrtreble.getvalue() "<br>midrange: " +jsldrmidrange.getvalue() "<br>bass: " + jsldrbass.getvalue() "<br>balance: " + bal "<br>volume: " + jsldrvolume.getvalue(); 192. } Δημιουργεί και ομαδοποιεί τα τρία radiobuttons Εμφανίζει το περιεχόμενο των ετικετών Δρ. Κεραμόπουλος Ευκλείδης 40

41 193. void setuppresets() { 194. presets = new Presets[3]; 195. presets[0] = new Presets(0, 0, 0, 0, 0); 196. presets[1] = new Presets(2, -4, 7, 0, 4); 197. presets[2] = new Presets(3, 3, -2, 1, 7); 198. } 199. void storepreset(presets info) { 200. info.bass = jsldrbass.getvalue(); 201. info.midrange = jsldrmidrange.getvalue(); 202. info.treble = jsldrtreble.getvalue(); 203. info.balance = jsldrbalance.getvalue(); 204. info.volume = jsldrvolume.getvalue(); 205. } 206. void loadpreset(presets info) { 207. jsldrbass.setvalue(info.bass); 208. jsldrmidrange.setvalue(info.midrange); 209. jsldrtreble.setvalue(info.treble); 210. jsldrbalance.setvalue(info.balance); 211. jsldrvolume.setvalue(info.volume); 212. } Δίνει αρχικές τιμές στα τρία presets Μέθοδος αποθήκευσης των νέων τιμών στα presets Μέθοδος ενημέρωσης των δεικτών των slider με τις τρέχουσες τιμές που είναι αποθηκευμένες στα presets 213. public static void main(string args[]) { 214. SwingUtilities.invokeLater(new Runnable() { 215. public void run() { 216. new AudioPlayer(); 217. } 218. }); 219. } 220. } Δρ. Κεραμόπουλος Ευκλείδης 41

42 Μία γραμμή προόδου ενημερώνει τον χρήστη για το ποσοστό ολοκλήρωσης της τρέχουσας εργασίας του. Είναι αντικείμενα της τάξης JProgressBar. Συνήθως δεν προγραμματίζεται το γεγονός που δημιουργεί (statechanged). Ακολουθεί το μοντέλο BoundedRangeModel αλλά περιγράφει μόνο τις ιδιότητες ελάχιστη τιμή, μέγιστη τιμή και τρέχουσα τιμή. Μπορούμε να προσθέσουμε κείμενο (το ποσοστό ολοκλήρωσης με τη μέθοδο: void setstringpainted(boolean on); και μαθαίνουμε εάν εμφανίζεται το ποσοστό ολοκλήρωσης με τη μέθοδο: boolean isstringpainted(); Δρ. Κεραμόπουλος Ευκλείδης 42

43 JProgressBar() ΔΟΜΗΤΕΣ JProgressBar(int min, int max) JProgressBar(int VorH) JProgressBar(int VorH, int min, int max) JProgressBar(BoundedRange Model model) ΠΕΡΙΓΡΑΦΗ Δημιουργεί μία οριζόντια γραμμή προόδου με αρχικές τιμές. 0, 100 ελάχιστη και μέγιστη τιμή και 0 τρέχουσα. Δημιουργεί μία οριζόντια γραμμή προόδου με παραμέτρους τα min, max Δημιουργεί μία γραμμή προόδου με παράμετρο την κατεύθυνση JProgressBar.HORIZONTAL, JProgressBar.VERTICAL Δημιουργεί μία γραμμή προόδου με παραμέτρους την κατεύθυνση VorH, το min και το max Δημιουργεί μία γραμμή προόδου με παράμετρο ένα μοντέλο που περιέχει όλες τις ιδιότητες Δρ. Κεραμόπουλος Ευκλείδης 43

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

45 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class ProgressDemo { 6. JLabel jlabvert; 7. JLabel jlabhoriz; 8. JProgressBar jproghoriz; 9. JProgressBar jprogvert; 10. JButton jbtn; 11. ProgressDemo() { 12. JFrame jfrm = new JFrame("Demonstrate Progress Bars"); 13. jfrm.setlayout(new FlowLayout()); 14. jfrm.setsize(280, 270); 15. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 16. jprogvert = new JProgressBar(JProgressBar.VERTICAL); 17. jproghoriz = new JProgressBar(); Δημιουργία δύο γραμμών προόδου Δρ. Κεραμόπουλος Ευκλείδης 45

46 18. jprogvert.setstringpainted(true); 19. jproghoriz.setstringpainted(true); 20. jbtn = new JButton("Push Me"); 21. jlabhoriz = new JLabel("Value of horizontal progress bar: " + jproghoriz.getvalue()); 22. jlabvert = new JLabel("Value of vertical progress bar: " + jprogvert.getvalue()); 23. jbtn.addactionlistener(new ActionListener() { 24. public void actionperformed(actionevent ae) { 25. int hval = jproghoriz.getvalue(); 26. int vval = jprogvert.getvalue(); 27. if(hval >= jproghoriz.getmaximum()) 28. return; 29. else 30. jproghoriz.setvalue(hval + 10); 31. if(vval >= jproghoriz.getmaximum()) 32. return; 33. else 34. jprogvert.setvalue(vval + 10); 35. jlabhoriz.settext("value of horizontal progress bar: " + jproghoriz.getvalue()); 36. jlabvert.settext("value of vertical progress bar: " + jprogvert.getvalue()); 37. } 38. }); Εμφανίζει το ποσοστό προόδου μέσα στην μπάρα Δρ. Κεραμόπουλος Ευκλείδης 46

47 39. jfrm.add(jproghoriz); 40. jfrm.add(jprogvert); 41. jfrm.add(jlabhoriz); 42. jfrm.add(jlabvert); 43. jfrm.add(jbtn); 44. jfrm.setvisible(true); 45. } 46. public static void main(string args[]) { 47. SwingUtilities.invokeLater(new Runnable() { 48. public void run() { 49. new ProgressDemo(); 50. } 51. }); 52. } 53. } Δρ. Κεραμόπουλος Ευκλείδης 47

48 Σε περίπτωση που δεν μπορείτε να υπολογίσετε το ποσοστό ολοκλήρωσης της γραμμής προόδου μπορείτε να εμφανίσετε τη γραμμή προόδου σε κατάσταση αναμονής. Δηλαδή, ένας δείκτης θα πηγαινοέρχεται ανάμεσα στα δύο άκρα της γραμμής προόδου. Αυτό ορίζεται με τις μεθόδους: void setindeterminate(boolean on) Αν true τότε η γραμμή προόδου είναι σε κατάσταση αναμονής boolean isindeterminate() Επιστρέφει την κατάσταση της γραμμής προόδου. Δρ. Κεραμόπουλος Ευκλείδης 48

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

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

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

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

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

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

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

https://docs.oracle.com/javase/tutorial/uiswing/components/slider.html VK - 04/11/2016- [1]

https://docs.oracle.com/javase/tutorial/uiswing/components/slider.html VK - 04/11/2016- [1] ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 4 o ΕΡΓΑΣΤΗΡΙO Audio Player 1-3. Πάνω σε ένα jframe με διάταξη Grid Bag Layout και τίτλο «AudioPlayer» τοποθετήστε 5 ετικέτες 5 slider 3 radio button 1 button 1 ετικέτα (ακόµη)

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

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

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

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

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

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

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

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

Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE 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. Ιδιαίτερα

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

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

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

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

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

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

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

Week 10: Graphical User Interfaces

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

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

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

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

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

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

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

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

Week 12: GUIs with Swing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές ελέγχου ροής προγράμματος

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

Το πρόγραμμα 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 υποστηρίζει

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Συνέχεια για το for: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Nested for-loops (for μέσα σε for): π.χ. int k; for (int i=0; i

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

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

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

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

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

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

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

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-252 Αντικειµενοστρεφής Προγραµµατισµός Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Θέμα 1 Θέμα 2 Θέμα 3 Θέμα 4 Θέμα

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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.

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

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

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

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

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Στην Ανάπτυξη Διεπιφανειών Χρήστη μια σημαντική λειτουργία είναι η εισαγωγή, εμφάνιση και τροποποίηση κειμένου. Θα μελετήσουμε αναλυτικά τέσσερα συστατικά της Java Swing για την

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

Generics και ArrayLists

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 7: Ενθυλάκωση (encapsulation), Τροποποιητές(modifiers) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ενθυλάκωση -Τροποποιητές Πρόσβασης (Access Modifiers), public, protected, private,

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος H κλάση ArrayList Γιώργος Θάνος Γραφείο Γ ος όροφος Γκλαβάνη 37 Εισαγωγικά Η κλάση ArrayList δίνει την δυνατότητα να αποθηκεύσουμε δεδομένα οποιουδήποτε τύπου σε μία δομή δεδομένων η οποία επιτρέπει τα

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

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

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

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

12.1 Εισαγωγή στο Swing 12.1 Εισαγωγή στο Swing JFC είναι το ακρωνύµιο των λέξεων Java Foundation Classes το οποίο περιλαµβάνει µια οµάδα χαρακτηριστικών για την δηµιουργία γραφικής διασύνδεσης χρήστη (GUI). ύο από τα χαρακτηριστικά

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

Από τη UML στον Κώδικα. Μέρος Α

Από τη UML στον Κώδικα. Μέρος Α Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 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 ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Συλλογές, Στοίβες και Ουρές

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing ΕΛΕΓΧΟΣ ΙΣΟΤΗΤΑΣ Έλεγχος ισότητας Έχουμε πει ότι όταν ελέγχουμε ισότητα μεταξύ αντικειμένων

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

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

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

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

(2) Thread Thread. Runnable. ( ) Java. Sample91. Thread Thread ) Thread. Runnable. run() / run() Runnnale ( ) MyRun implements Runnable Runnable

(2) Thread Thread. Runnable. ( ) Java. Sample91. Thread Thread ) Thread. Runnable. run() / run() Runnnale ( ) MyRun implements Runnable Runnable (2) 18 6 26 Thread Thread Runnable ( ) Java 1 Sample91 Thread (Thread Runnable Thread ) Thread Runnable run() / Runnable run() run() Runnnale ( ) MyRun class MyRun implements Runnable Runnable (implements)

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

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Κλάσεις Τροποποιητές, ιασυνδέσεις, Πακέτα Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Υπάρχουν 4τροποποιητές: default, public, private, protected. Default: εν προηγείται τροποποιητής του ονόµατος

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 3 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπερφόρτωση Αντικείμενα σαν ορίσματα ΥΠΕΡΦΟΡΤΩΣΗ H κλάση Car Μια κλάση που κρατάει την θέση ενός αυτοκινήτου. Μέθοδος move(): μετακινεί το αυτοκίνητο κατά μία

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία

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

8. Το μοντέλο συμβάντων του AWT

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

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

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

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

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

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

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016 Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο 1 η Ενδιάμεση

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