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

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

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

Transcript

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

2 Τα όρια μπορούν να εμφανιστούν σε κάθε συστατικό της Java Swing. Με τα όρια μπορούμε να ορίσουμε εμφανή περιθώρια για κάθε συστατικό. Η εμφάνιση των ορίων είναι ιδιαίτερα χρήσιμη στη χρήση δύο συστατικών (είναι τα μόνα συστατικά των οποίων η εμφάνιση των ορίων δεν ορίζεται αυτόματα.): Labels Panels Δρ. Κεραμόπουλος Ευκλείδης 2

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

4 Όλα τα Java Swing Borders είναι στιγμιότυπα της διεπαφής javax.swing.border.border Μία μεγάλη ποικιλία από μεθόδους υλοποίησης εμφάνισης ορίων ενός συστατικού μας παρέχει η Java Swing στην τάξη javax.swing.borderfactory Παραδείγματα: Δήλωση μεθόδου εμφάνισης απλής γραμμής με επιλογή στο χρώμα static Border createlineborder(color linecolor); Δήλωση μεθόδου εμφάνισης απλής γραμμής με επιλογή στο χρώμα και στο πάχος static Border createlineborder(color linecolor, int width); Δήλωση μεθόδου εμφάνισης ανασηκωμένης ή βυθισμένης γραμμής static Border createetchedborder(); Δήλωση μεθόδου εμφάνισης κενού γύρω από το συστατικό με επιλογή στο πάχος του κενού σε κάθε πλευρά static Border createemptyborder(int topwidth, int leftwidth, int bottomwidth, int rightwidth;); Δρ. Κεραμόπουλος Ευκλείδης 4

5 1. import java.awt.*; 2. import javax.swing.*; class BorderDemo { BorderDemo() { JFrame jfrm = new JFrame("Use Line and Etched Borders"); jfrm.setlayout(new FlowLayout()); jfrm.setsize(280, 90); jfrm.setdefaultcloseoperation(jframe.exit_on_close); JLabel jlab = new JLabel(" This uses a line border. "); 22. jlab.setborder(borderfactory.createlineborder(color.black)); Ορισμός ενός line ορίου Δρ. Κεραμόπουλος Ευκλείδης 5

6 23. JLabel jlab2 = new JLabel(" This uses an etched border. "); 24. jlab2.setborder(borderfactory.createetchedborder()); jfrm.add(jlab); 27. jfrm.add(jlab2); jfrm.setvisible(true); 30. } Ορισμός ενός etched ορίου public static void main(string args[]) { 33. SwingUtilities.invokeLater(new Runnable() { 34. public void run() { 35. new BorderDemo(); 36. } 37. }); 38. } 39. } Δρ. Κεραμόπουλος Ευκλείδης 6

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

8 ΔΟΜΗΤΕΣ ΠΕΡΙΓΡΑΦΗ JLabel() Δημιουργεί μία άδεια ετικέτα JLabel(String str) Δημιουργεί μία ετικέτα που περιέχει κείμενο JLabel(Icon icon) Δημιουργεί μία ετικέτα που περιέχει εικόνα JLabel(String str, int horzalign) JLabel(Icon icon, int horzalign) JLabel(String str, Icon icon, int horzalign) Δημιουργεί μία ετικέτα που περιέχει κείμενο και ορίζει την οριζόντια στοίχιση Δημιουργεί μία ετικέτα που περιέχει εικόνα και ορίζει την οριζόντια στοίχιση Δημιουργεί μία ετικέτα που περιέχει κείμενο και εικόνα και ορίζει την οριζόντια στοίχιση Δρ. Κεραμόπουλος Ευκλείδης 8

9 Για να στοιχίσουμε οριζόντια μία ετικέτα χρησιμοποιούμαι τον τέταρτο δομητή, JLabel(String str, int horzalign) Πιθανές τιμές για την παράμετρο horzalign είναι: SwingConstants.LEFT Αριστερά SwingConstants.RIGHT Δεξιά SwingConstants.CENTER Κέντρο SwingConstants.LEADING Είναι αριστερά ή δεξιά ανάλογα την κατεύθυνση του κειμένου (από που ξεκινά) SwingConstants.TRAILING Είναι αριστερά ή δεξιά ανάλογα την κατεύθυνση του κειμένου (που τελειώνει) Για να στοιχίσουμε κάθετα μία ετικέτα χρησιμοποιούμαι την εντολή void setverticalalignement(int vertalign); Πιθανές τιμές για την παράμετρο vertalign είναι: SwingConstants.TOP Πάνω SwingConstants.ΒΟΤΤΟΜ Κάτω SwingConstants.CENTER Κέντρο Η στοίχιση μίας ετικέτας εξαρτάται και από την επιλογή του layout και αν το κείμενο καλύπτει όλο το χώρο της ετικέτας Δεν έχει νόημα στο FlowLayout Δρ. Κεραμόπουλος Ευκλείδης 9

10 Αυτή η μορφή layout δημιουργεί έναν πίνακα από κελιά με ίδιο μέγεθος. GridLayout(int γραμμές, int στήλες, int οριζόντιο_κενό, int κάθετο_κενό); Ο πίνακας γεμίζει από πάνω αριστερά. Δρ. Κεραμόπουλος Ευκλείδης 10

11 Επίδειξη στοίχισης κειμένου σε ετικέτες και ορίου σε GridLayout Δρ. Κεραμόπουλος Ευκλείδης 11

12 1. package ADX_project1; 2. import javax.swing.*; 3. import java.awt.*; 4. import javax.swing.border.*; 5. class AlignLabelDemo { 6. AlignLabelDemo() { 7. JLabel[] jlabs = new JLabel[9]; 8. JFrame jfrm = new JFrame("Horizontal and Vertical Alignment"); 9. jfrm.setlayout(new GridLayout(3, 3, 4, 4)); Το Layout επιλέχθηκε σε GridLayout. Θα αποτελείται από 3 στήλες και 3 γραμμές με κενό ανάμεσα στις στήλες και τις γραμμές 4 pixels. 10. jfrm.setsize(500, 200); 11. jfrm.setdefaultcloseoperation(jframe.exit_on_close); Δρ. Κεραμόπουλος Ευκλείδης 12

13 12. // Left-align text at top. 13. jlabs[0] = new JLabel("Left, Top", SwingConstants.LEFT); 14. jlabs[0].setverticalalignment(swingconstants.top); 15. // Center text at top. 16. jlabs[1] = new JLabel("Center, Top", SwingConstants.CENTER); 17. jlabs[1].setverticalalignment(swingconstants.top); 18. // Right-align text at Top. 19. jlabs[2] = new JLabel("Right, Top", SwingConstants.RIGHT); 20. jlabs[2].setverticalalignment(swingconstants.top);; 21. // Left-align text at center. 22. jlabs[3] = new JLabel("Left, Center", SwingConstants.LEFT); 23. // Center the text. 24. jlabs[4] = new JLabel("Center, Center", SwingConstants.CENTER); 25. // Right-algin text at center. 26. jlabs[5] = new JLabel("Right, Center", SwingConstants.RIGHT); 27. // Left-align text at bottom jlabs[6] = new JLabel("Left, Bottom", SwingConstants.LEFT); 29. jlabs[6].setverticalalignment(swingconstants.bottom); 30. // Center text at bottom. 31. jlabs[7] = new JLabel("Center, Bottom", SwingConstants.CENTER); 32. jlabs[7].setverticalalignment(swingconstants.bottom); 33. // Right-align text at bottom. 34. jlabs[8] = new JLabel("Right, Bottom", SwingConstants.RIGHT); 35. jlabs[8].setverticalalignment(swingconstants.bottom); Στις γραμμές ορίζονται τα περιεχόμενα των 9 κελιών. Δρ. Κεραμόπουλος Ευκλείδης 13

14 36. Border border = BorderFactory.createEtchedBorder(); for(int i=0; i<9; i++) 39. jlabs[i].setborder(border); for(int i=0; i<9; i++) 42. jfrm.add(jlabs[i]); JPanel cp = ((JPanel) jfrm.getcontentpane()); 45. cp.setborder(borderfactory.createemptyborder(4, 4, 4, 4)); 46. jfrm.setvisible(true); 47. } 48. public static void main(string args[]) { 49. SwingUtilities.invokeLater(new Runnable() { 50. public void run() { 51. new AlignLabelDemo(); 52. } 53. }); 54. } 55. } Δημιουργούμε ένα όριο. Βάζουμε το όριο στις 9 ετικέτες Γεμίζουμε το grid από πάνω αριστερά. Σε περίπτωση που δεν έχουν οριστεί 9 ετικέτες τότε θα μείνουν άδεια τα κελιά από κάτω δεξιά. Προσθέτουμε το πάνελ σε 2 ο επίπεδο πάνω από το frame και βάζουμε όριο το «κενό» Δρ. Κεραμόπουλος Ευκλείδης 14

15 Δεν υπάρχει ιδιότητα όριο για ένα frame. Έτσι, θα πρέπει πρώτα να βάλουμε πάνω στο frame ένα panel και σε αυτό να ορίσουμε το όριο (border) που θέλουμε και το grid layout. Δοκιμάστε με drag and drop να μετακινήσετε ένα label από το panel στο frame και αντίστροφα. Θα δουλεύετε πάντα στο «inspector» παράθυρο Inspector παράθυρο Δρ. Κεραμόπουλος Ευκλείδης 15

16 Για να προσθέσουμε εικόνα σε μία ετικέτα μπορούμε να χρησιμοποιήσουμε έναν από τους παρακάτω δύο δομητές: JLabel(Icon icon) JLabel(Icon icon, int horzalign) Η εικόνα τοποθετείται στο κέντρο της ετικέτας εκτός και αν την τοποθετήσουμε εμείς σε άλλο σημείο χρησιμοποιώντας την οριζόντια στοίχιση. Για να χρησιμοποιήσουμε μία εικόνα σε μία ετικέτα θα πρέπει πρώτα να έχουμε ορίσει την εικόνα ως αντικείμενο της τάξης javax.swing.imageicon επεκτείνοντας τη διεπαφή javax.swing.icon π.χ Αντιστοιχίζουμε στο αντικείμενο myicon την εικόνα myicon.gif. (H Java δέχεται αρχεία τύπου gif και jpeg για εικόνες) ImageIcon myicon = new ImageIcon( c:/temp/myicon.gif ) Δρ. Κεραμόπουλος Ευκλείδης 16

17 Για να προσθέσουμε εικόνα και κείμενο σε μία ετικέτα μπορούμε να χρησιμοποιήσουμε τον παρακάτω δομητή: JLabel(String str, Icon icon, int horzalign) Η εικόνα τοποθετείται αυτόματα στην αριστερή άκρη της ετικέτας και ακολουθεί το κείμενο. Για να επιβάλουμε εμείς διαφορετική τοποθέτηση των δύο αντικειμένων στην ετικέτα θα πρέπει να χρησιμοποιήσουμε τις μεθόδους: void setverticaltextposition(int loc) void sethorizontaltextposition(int loc) π.χ Jlabel1.setVerticalTextPosition(SwingConstants.Top); Δρ. Κεραμόπουλος Ευκλείδης 17

18 1. package ADX_project1; 2. import javax.swing.*; 3. import java.awt.*; 4. class IconLabelDemo { 5. IconLabelDemo() { 6. JFrame jfrm = new JFrame("Use Images in Labels"); 7. jfrm.setlayout(new GridLayout(4, 1)); 8. jfrm.setsize(250, 300); 9. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 4 γραμμές 1 στήλη Δρ. Κεραμόπουλος Ευκλείδης 18

19 10. ImageIcon myicon = new ImageIcon("myIcon.gif"); JLabel jlabicon = new JLabel(myIcon); Δημιουργία Αντικειμένου εικόνας Δημιουργία ετικέτας εικόνας JLabel jlabicontxt = new JLabel("Default Icon and Text Position", 15. myicon, SwingConstants.CENTER); 16. JLabel jlabicontxt2 = new JLabel("Text Left of Icon", myicon, 17. SwingConstants.CENTER); 18. jlabicontxt2.sethorizontaltextposition(swingconstants.left); Δημιουργία ετικετών εικόνας και κειμένου. Η στοίχιση είναι μέσα στο frame 19. JLabel jlabicontxt3 = new JLabel("Text Over Icon", myicon, SwingConstants.CENTER); 21. jlabicontxt3.setverticaltextposition(swingconstants.top); 22. jlabicontxt3.sethorizontaltextposition(swingconstants.center); Το κείμενο να μπει αριστερά Το κείμενο να μπει πάνω Δρ. Κεραμόπουλος Ευκλείδης 19

20 23. jfrm.add(jlabicon); 24. jfrm.add(jlabicontxt); 25. jfrm.add(jlabicontxt2); 26. jfrm.add(jlabicontxt3); 27. jfrm.setvisible(true); 28. } 29. public static void main(string args[]) { 30. SwingUtilities.invokeLater(new Runnable() { 31. public void run() { 32. new IconLabelDemo(); 33. } 34. }); 35. } 36. } Δρ. Κεραμόπουλος Ευκλείδης 20

21 Επιλέγω την ιδιότητα icon του συστατικού π.χ JLabel, Δρ. Κεραμόπουλος Ευκλείδης 21

22 Επιλέγω την ιδιότητα horizontaltextposition της ετικέτας Δρ. Κεραμόπουλος Ευκλείδης 22

23 Οι ετικέτες χρησιμοποιούνται συνήθως για να περιγράψουν κάποιο άλλο συστατικό, όπως κάποιο πεδίο κειμένου. Σε περίπτωση που αυτό το συστατικό είναι απενεργοποιημένο αισθητικά και λειτουργικά είναι καλύτερα να φαίνεται και η ετικέτα απενεργοποιημένη (γκρι). Αυτό γίνεται με την μέθοδο void setenabled(boolean κατάσταση) η κατάσταση μπορεί να είναι true (ενεργοποιημένη) ή false (απενεργοποιημένη) Σε περίπτωση που στην ετικέτα υπάρχει εικόνα μπορεί να αλλάζει η εικόνα για φαίνεται η ετικέτα απενεργοποιημένη Αυτό γίνεται με την μέθοδο void setdisabledicon(icon εικόνα) Δρ. Κεραμόπουλος Ευκλείδης 23

24 1. package ADX_project1; 2. import javax.swing.*; 3. import java.awt.*; 4. class DisabledLabelDemo { 5. DisabledLabelDemo() { 6. JFrame jfrm = new JFrame("Use Images in Labels"); 7. jfrm.setlayout(new GridLayout(3, 1)); 8. jfrm.setsize(240, 250); 9. jfrm.setdefaultcloseoperation(jframe.exit_on_close); Δρ. Κεραμόπουλος Ευκλείδης 24

25 10. ImageIcon myicon = new ImageIcon("myIcon.gif"); 11. ImageIcon mydisicon = new ImageIcon("myDisIcon.gif"); 12. JLabel jlabicontxt = new JLabel("This label is enabled., myicon, SwingConstants.CENTER); 13. JLabel jlabicontxt2 = new JLabel("This label is disabled.,myicon, SwingConstants.CENTER); 14. jlabicontxt2.setenabled(false); 15. JLabel jlabicontxt3 = new JLabel("Use the disabled icon.,myicon, SwingConstants.CENTER); 16. jlabicontxt3.setdisabledicon(mydisicon); 17. jlabicontxt3.setenabled(false); Απενεργοποίηση της ετικέτας με αφαίρεση του v Απενεργοποίηση της ετικέτας Ορισμός εικόνας σε κατάσταση απενεργοποίηση της ετικέτας Δρ. Κεραμόπουλος Ευκλείδης 25

26 1. jfrm.add(jlabicontxt); 2. jfrm.add(jlabicontxt2); 3. jfrm.add(jlabicontxt3); 4. jfrm.setvisible(true); 5. } 6. public static void main(string args[]) { 7. SwingUtilities.invokeLater(new Runnable() { 8. public void run() { 9. new DisabledLabelDemo(); 10. } 11. }); 12. } 13. } Δρ. Κεραμόπουλος Ευκλείδης 26

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

28 Υπάρχει η δυνατότητα να οριστεί συντόμευση για γρήγορη πρόσβαση σε ένα συστατικό μέσω της ετικέτας που το περιγράφει. Αυτό γίνεται σε δύο βήματα: 1. Ορίζεται το πλήκτρο συντόμευσης με τη μέθοδο void setdisplayedmnemonic(int πλήκτρο); π.χ label1.setdisplayedmnemonic( f ); Για την ετικέτα label1 ορίστηκε πλήκτρο συντόμευσης το f. Σε περίπτωση που εμφανίζεται στην ετικέτα πολλές φορές το πλήκτρο συντόμευσης τότε υπογραμμίζεται η πρώτη εμφάνιση. Αν όμως θέλουμε κάποια άλλη εμφάνιση του ίδιου πλήκτρου τότε χρησιμοποιούμε τη παρακάτω μέθοδο: void setdisplayedmnemonicindex(int θέση) throws IllegalArgumentException; π.χ label1.setdisplayedmnemonicindex(9); 2. Ορίζεται το συστατικό που συνδέεται στην ετικέτα με τη μέθοδο void setlabelfor(component συστατικό); π.χ. label1.setlabelfor(textfield1) Δρ. Κεραμόπουλος Ευκλείδης 28

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

30 1. package ADX_project1; 2. import java.awt.*; 3. import javax.swing.*; 4. class MnemDemo { 5. MnemDemo() { 6. JFrame jfrm = new JFrame("Demonstrate Mnemomics"); 7. jfrm.setlayout(new FlowLayout()); 8. jfrm.setsize(260, 140); 9. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 10. JLabel jlab1 = new JLabel(" Address"); 11. JLabel jlab2 = new JLabel("Name"); Δρ. Κεραμόπουλος Ευκλείδης 30

31 12. jlab1.setdisplayedmnemonic('e'); 13. jlab2.setdisplayedmnemonic('n'); Ορίζονται για κάθε ετικέτα οι συντομεύσεις 14. JTextField jtf1 = new JTextField(20); 15. JTextField jtf2 = new JTextField(20); Δημιουργούνται δύο Text Field 16. jlab1.setlabelfor(jtf1); 17. jlab2.setlabelfor(jtf2); Ορίζεται ποιο συστατικό αντιστοιχεί σε ποια ετικέτα Δρ. Κεραμόπουλος Ευκλείδης 31

32 18. jfrm.add(jlab1); 19. jfrm.add(jtf1); 20. jfrm.add(jlab2); 21. jfrm.add(jtf2); 22. jfrm.setvisible(true); 23. } 24. public static void main(string args[]) { 25. SwingUtilities.invokeLater(new Runnable() { 26. public void run() { 27. new MnemDemo(); 28. } 29. }); 30. } 31. } Δρ. Κεραμόπουλος Ευκλείδης 32

33 Αλλαγή του κειμένου μιας ετικέτας γίνεται με τη μέθοδο: void settext(string str); Παίρνουμε το κείμενο μίας ετικέτας με τη μέθοδο: String gettext(); Μπορεί να χρησιμοποιηθεί HTML για τη περιγραφή του κειμένου. π.χ JLabel label1 = new JLabel( <html>top<br>bottom ); Δρ. Κεραμόπουλος Ευκλείδης 33

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

35 Στη Java Swing υπάρχουν τέσσερα είδη κουμπιών: 1. JButton, το κλασσικό κουμπί (push-button) 2. JToggleButton, ένα κουμπί δύο καταστάσεων (on/off) 3. JCheckBox, κουμπί επιλογής 4. JRadioButton, κουμπί μοναδικής επιλογής από ένα σετ κουμπιών. Όλα τα κουμπιά είναι υποτάξεις της AbstractButton η οποία επεκτείνει την JComponent. Στην AbstractButton είναι υλοποιημένες πολλές μέθοδοι οι οποίες μπορούν να εφαρμοσθούν σε όλα τα είδη κουμπιών. Δρ. Κεραμόπουλος Ευκλείδης 35

36 ΜΕΘΟΔΟΣ void addactionlistener(actionlistener al) void addchangelistener(changelistener cl) void additemlistener(itemlistener il) void doclick() String gettext() ButtonModule getmodel() boolean isselected() void setenabled(boolean state) void setdisabledicon(icon icon) void sethorizontalalignment(int HorzAlign) ΠΕΡΙΓΡΑΦΗ Καταχωρεί έναν ακροατή γεγονότων ενέργειας σχετικό με κουμπί Καταχωρεί έναν ακροατή γεγονότων μεταβολής σχετικό με κουμπί Καταχωρεί έναν ακροατή γεγονότων κατάστασης σχετικό με κουμπί Αλλάζει ένα κουμπί σε πατημένο (pressed) Παίρνει το κείμενο από ένα κουμπί Επιστρέφει το μοντέλο ενός κουμπιού Επιστρέφει true αν το κουμπί είναι επιλεγμένο ή false σε αντίθετη περίπτωση (εφαρμόζεται μόνο σε JToggleButton) Ενεργοποιεί και Απενεργοποιεί ένα κουμπί. Όταν το κουμπί είναι απενεργοποιημένο θέτει την εικόνα του Στοιχίζει οριζόντια τα περιεχόμενα ενός κουμπιού Δρ. Κεραμόπουλος Ευκλείδης 36

37 ΜΕΘΟΔΟΣ void sethorizontaltextposition(int loc) void setmnemonic(int ch) void setpressedicon(icon icon) void setrollovericon(icon icon) void setrolloverselectedicon(icon icon) void setselected(boolean state) void setselectedicon(icon icon) void settext(string str) void setverticalalignment(int vertalign) void setverticaltextposition(int loc) ΠΕΡΙΓΡΑΦΗ Στοιχίζει οριζόντια το κείμενο ενός κουμπιού το οποίο περιέχει και εικόνα και κείμενο Δημιουργεί συντόμευση χαρακτήρα για ένα κουμπί Όταν το κουμπί είναι πατημένο θέτει την εικόνα του Όταν το ποντίκι περνά πάνω από ένα κουμπί θέτει την εικόνα του Όταν το κουμπί είναι πατημένο και περνά από πάνω του το ποντίκι θέτει την εικόνα του Αλλάζει την κατάσταση ενός κουμπιού. Με true το κουμπί γίνεται επιλεγμένο ενώ με false επιστρέφει στην αρχική του κατάσταση (εφαρμόζεται μόνο σε JToggleButton) Όταν το κουμπί είναι επιλεγμένο θέτει την εικόνα του (εφαρμόζεται μόνο σε JToggleButton) Ορίζει το κείμενο σε ένα κουμπί Στοιχίζει κάθετα τα περιεχόμενα ενός κουμπιού Στοιχίζει κάθετα το κείμενο ενός κουμπιού το οποίο περιέχει και εικόνα και κείμενο Δρ. Κεραμόπουλος Ευκλείδης 37

38 Υπάρχουν τριών ειδών κατηγορίες γεγονότων: Action γεγονότα (Ενέργειας) Item γεγονότα (Κατάστασης) Change γεγονότα (μεταβολής κατάστασης) Δρ. Κεραμόπουλος Ευκλείδης 38

39 Όταν μία ενέργεια εκτελείται τότε δημιουργείται ένα αντίστοιχο γεγονός. π.χ. το πάτημα ενός κουμπιού. Η ActionEvent τάξη περιγράφει αυτού του είδους τα γεγονότα, τα οποία χειρίζονται η μοναδική μέθοδος της διεπαφής ActionListener: void actionperformed(actionevent ae); Δρ. Κεραμόπουλος Ευκλείδης 39

40 Πως λειτουργεί; Το αντικείμενο ActionEvent που δημιουργείται, στέλνεται στη μέθοδο actionperformed(), με την οποία έχουμε πρόσβαση σε διάφορες πληροφορίες. Βρίσκουμε το συστατικό που δημιούργησε το γεγονός. Αυτό γίνεται με δύο μεθόδους: String getactioncommand(), επιστρέφει το string που περιέχει το κουμπί που δημιούργησε το γεγονός Object getsource(), επιστρέφει μία αναφορά στο κουμπί που δημιούργησε το γεγονός Δρ. Κεραμόπουλος Ευκλείδης 40

41 Χρήσιμες μέθοδοι int getmodifiers(), επιστρέφει αν κάποιο ειδικό πλήκτρο έχει πατηθεί, όπως ALT, CTRL, SHIFT, long getwhen(), επιστρέφει τη στιγμή που έγινε το γεγονός σε μορφή timestamp. Σημείωση: Timestamp αποτελείται από ΕΤΟΣ:ΜΗΝΑ:ΜΕΡΑ:ΩΡΑ:ΛΕΠΤΟ:ΔΕΥΤΕΡΟΛΕΠΤΟ:ΔΕΚΑΤΟ Δρ. Κεραμόπουλος Ευκλείδης 41

42 Τα γεγονότα κατάστασης δημιουργούνται όταν συμβαίνει ένα γεγονός σε ένα JCheckBox ή σε ένα JRadioButton. Η ItemEvent τάξη περιγράφει αυτού του είδους τα γεγονότα, τα οποία χειρίζεται η μοναδική μέθοδος της διεπαφής ItemListener: void itemstatechanged(itemevent ie); Για να πάρουμε μία αναφορά στο συστατικό που συνέβη το γεγονός χρησιμοποιούμε τη μέθοδο: Object getitem(), η οποία επιστρέφει ένα αντικείμενο τύπου JCheckBox ή JRadioButton Για να πάρουμε ποια συστατικά μπορούν να δημιουργήσουν ένα ItemEvent γεγονός χρησιμοποιούμε τη μέθοδο: ItemSelectable getitemselectable(), Για να μάθουμε την τιμή που έχει ένα συστατικό ενός JCheckBox ή JRadioButton χρησιμοποιούμε τη μέθοδο: int getstatechange(), που παίρνει τιμές SELECTED και DESELECTED Δρ. Κεραμόπουλος Ευκλείδης 42

43 Τα γεγονότα μεταβολής κατάστασης δημιουργούνται όταν συμβαίνει ένα γεγονός σε ένα JToggleButton. Η ChangeEvent τάξη περιγράφει αυτού του είδους τα γεγονότα, τα οποία χειρίζονται η μοναδική μέθοδος της διεπαφής ChangeListener: void statechanged(changeevent ce); Για να πάρουμε ένα συστατικό που δημιουργήθηκε από ChangeEvent γεγονός χρησιμοποιούμε τη μέθοδο Object getsource(); Δρ. Κεραμόπουλος Ευκλείδης 43

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

45 Ένα JButton μπορεί να περιέχει κείμενο, εικόνα ή και τα δύο. Ένα JButton δημιουργείται με έναν από τους παρακάτω δομητές: JΒutton(), επιστρέφει ένα κενό κουμπί JΒutton(String str) επιστρέφει ένα κουμπί που εμφανίζει το κείμενο str JΒutton(String str, Icon icon) επιστρέφει ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon JΒutton(Icon icon) επιστρέφει ένα κουμπί που εμφανίζει την εικόνα icon JΒutton(Action act) επιστρέφει ένα κουμπί που τα περιεχόμενα του εξαρτώνται από το αντικείμενο παράμετρο Δρ. Κεραμόπουλος Ευκλείδης 45

46 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class ButtonIcons implements ActionListener { 6. JLabel jlab; 7. JButton jbtnfirst; 8. JButton jbtnsecond; Ορίζονται οι εικόνες που θα χρησιμοποιηθούν 9. ButtonIcons() { 10. ImageIcon myicon = new ImageIcon("myIcon.gif"); 11. ImageIcon mydisicon = new ImageIcon("myDisIcon.gif"); 12. ImageIcon myroicon = new ImageIcon("myROIcon.gif"); 13. ImageIcon mypicon = new ImageIcon("myPIcon.gif"); 14. JFrame jfrm = new JFrame("Use Button Icons"); 15. jfrm.setlayout(new FlowLayout()); 16. jfrm.setsize(220, 100); 17. jfrm.setdefaultcloseoperation(jframe.exit_on_close); Δρ. Κεραμόπουλος Ευκλείδης 46

47 18. jlab = new JLabel("Press a button."); 19. jbtnfirst = new JButton("First", myicon); 20. jbtnsecond = new JButton("Second", myicon); 21. jbtnfirst.setrollovericon(myroicon); 22. jbtnsecond.setrollovericon(myroicon); 23. jbtnfirst.setpressedicon(mypicon); 24. jbtnsecond.setpressedicon(mypicon); 25. jbtnfirst.setdisabledicon(mydisicon); 26. jbtnsecond.setdisabledicon(mydisicon); 27. jbtnfirst.addactionlistener(this); 28. jbtnsecond.addactionlistener(this); Δημιουργία δύο νέων κουμπιών που περιέχουν κείμενο και εικόνα Ποια εικόνα θα εμφανίζεται σε κάθε κουμπί όταν γίνεται rollover Ποια εικόνα θα εμφανίζεται σε κάθε κουμπί όταν επιλέγεται Ποια εικόνα θα εμφανίζεται σε κάθε κουμπί όταν απενεργοποιείται Καταχωρούμε τον ακροατή για το αντίστοιχο γεγονός για κάθε κουμπί 29. jfrm.add(jbtnfirst); 30. jfrm.add(jbtnsecond); 31. jfrm.add(jlab); 32. jfrm.setvisible(true); 33. } Δρ. Κεραμόπουλος Ευκλείδης 47

48 34. public void actionperformed(actionevent ae) { 35. if(ae.getactioncommand().equals("first")) { 36. jlab.settext("first button was pressed."); 37. if(jbtnsecond.isenabled()) { 38. jlab.settext("second button is disabled."); 39. jbtnsecond.setenabled(false); 40. } 41. else { 42. jlab.settext("second button is enabled."); 43. jbtnsecond.setenabled(true); 44. } 45. } else 46. jlab.settext("second button was pressed. "); 47. } Αν το second κουμπί είναι ενεργοποιημένο απενεργοποιείται αλλιώς το αντίστροφο 48. public static void main(string args[]) { 49. SwingUtilities.invokeLater(new Runnable() { 50. public void run() { 51. new ButtonIcons(); 52. } 53. }); 54. } 55. } Δρ. Κεραμόπουλος Ευκλείδης 48

49 void setdefaultbutton(jbutton button) ορίζει ένα κουμπί ως default. Δηλαδή όταν πατήσουμε το πλήκτρο ENTER τότε θα «πατηθεί» αυτόματα το default κουμπί. π.χ. Jfrm.getRootPane().setDefaultButton(jbtnFirst); Μπορούμε να χρησιμοποιήσουμε HTML σε ένα κουμπί όπως και στις ετικέτες και επίσης να ορίσουμε συντομεύσεις με τη μέθοδο setmnemonic() όπως και στις ετικέτες Δρ. Κεραμόπουλος Ευκλείδης 49

50 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class ButtonIcons implements ActionListener { 6. JLabel jlab; 7. JButton jbtnfirst; 8. JButton jbtnsecond; Η τάξη ButtonIcons δεν επεκτείνει τη διεπαφή ActionListener 9. ButtonIcons() { 10. ImageIcon myicon = new ImageIcon("c:/temp/myIcon.gif"); 11. ImageIcon mydisicon = new ImageIcon("c:/temp/myDisIcon.gif"); 12. ImageIcon myroicon = new ImageIcon("c:/temp/myROIcon.gif"); 13. ImageIcon mypicon = new ImageIcon("c:/temp/myPIcon.gif"); 14. JFrame jfrm = new JFrame("Use Button Icons"); 15. jfrm.setlayout(new FlowLayout()); 16. jfrm.setsize(220, 100); 17. jfrm.setdefaultcloseoperation(jframe.exit_on_close); Δρ. Κεραμόπουλος Ευκλείδης 50

51 18. jlab = new JLabel("Press a button."); 19. jbtnfirst = new JButton("First", myicon); 20. jbtnsecond = new JButton("Second", myicon); 21. jbtnfirst.setrollovericon(myroicon); 22. jbtnsecond.setrollovericon(myroicon); 23. jbtnfirst.setpressedicon(mypicon); 24. jbtnsecond.setpressedicon(mypicon); 25. jbtnfirst.setdisabledicon(mydisicon); 26. jbtnsecond.setdisabledicon(mydisicon); 27. jbtnfirst.addactionlistener(this); 28. jbtnsecond.addactionlistener(this); Δεν καταχωρούμε τον ακροατή για το αντίστοιχο γεγονός για κάθε κουμπί 29. jfrm.add(jbtnfirst); 30. jfrm.add(jbtnsecond); 31. jfrm.add(jlab); 32. jfrm.setvisible(true); Δρ. Κεραμόπουλος Ευκλείδης 51

52 33. jbtnfirst.addactionlistener(new ActionListener() { 34. public void actionperformed(actionevent ae) { 35. if(jbtnsecond.isenabled()) { 36. jlab.settext("second button is disabled."); 37. jbtnsecond.setenabled(false); 38. } else { 39. jlab.settext("second button is enabled."); 40. jbtnsecond.setenabled(true); 41. } 42. } 43. }); 44. } 45. jbtnsecond.addactionlistener(new ActionListener() { 46. public void actionperformed(actionevent ae) { 47. jlab.settext("second button was pressed."); 48. } 49. }); 50. public static void main(string args[]) { 51. SwingUtilities.invokeLater(new Runnable() { 52. public void run() { 53. new ButtonIcons(); 54. } 55. }); 56. } 57. } Η υλοποίηση του χειρισμού των γεγονότων γίνεται από μία ανώνυμη εσωτερική τάξη για κάθε περίπτωση. Στο NetBeans χρησιμοποιούνται ανώνυμες εσωτερικές τάξεις στον κώδικα που δημιουργείται αυτόματα. Δρ. Κεραμόπουλος Ευκλείδης 52

53 1. package ADX_project1; 2. import java.awt.*; 3. import javax.swing.*; 4. import javax.swing.event.*; 5. class ChangeDemo { 6. JButton jbtn; 7. JLabel jlab; 8. ChangeDemo() { 9. JFrame jfrm = new JFrame("Button Change Events"); 10. jfrm.setlayout(new FlowLayout()); 11. jfrm.setsize(250, 160); 12. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 13. jlab = new JLabel(); 14. jbtn = new JButton("Press for Change Event Test"); Το μοντέλο ButtonModel περιέχει έτοιμες καταστάσεις που μπορούμε να χρησιμοποιήσουμε Δρ. Κεραμόπουλος Ευκλείδης 53

54 15. jbtn.addchangelistener(new ChangeListener() { 16. public void statechanged(changeevent ce) { 17. ButtonModel mod = jbtn.getmodel(); 18. String what = ""; 19. if(mod.isenabled()) what += "Enabled<br>"; 20. if(mod.isrollover()) what += "Rollover<br>"; 21. if(mod.isarmed()) what += "Armed<br>"; 22. if(mod.ispressed()) what += "Pressed<br>"; 23. jlab.settext("<html>current state:<br>" + what); 24. } 25. }); 26. jfrm.add(jbtn); 27. jfrm.add(jlab); 28. jfrm.setvisible(true); 29. } 33. public static void main(string args[]) { 34. SwingUtilities.invokeLater(new Runnable() { 35. public void run() { 36. new ChangeDemo(); 37. } 38. }); 39. } 40. } Δημιουργείται ανώνυμη εσωτερική τάξη για διαχείριση των γεγονότων μεταβολής στο κουμπί jbtn Επέκταση του μοντέλου ButtonModel Χρήση HTML για την εμφάνιση Δρ. Κεραμόπουλος Ευκλείδης 54

55 Το JToggleButton είναι ένα JButton το οποίο όταν «πατιέται» μένει μέσα. Έτσι έχει δύο καταστάσεις 1. pressed 2. released Το JToggleButton είναι υπερτάξη του JCheckBox και του JRadioButton, που σημαίνει ότι στην τάξη JToggleButton περιγράφεται ένα μεγάλο κομμάτι της λειτουργικότητας και των άλλων δύο τύπων κουμπιών. Το JToggleButton χρησιμοποιεί ένα διαφορετικό μοντέλο από το JButton, το JToggleButton.JToggleButtonModel Μία άλλη διαφορά που έχει το JToggleButton από το JButton είναι ότι το JToggleButton χειρίζεται επίσης και γεγονότα ItemEvents Δρ. Κεραμόπουλος Ευκλείδης 55

56 Όλα τα Toggle κουμπιά που δημιουργούνται είναι αντικείμενα της τάξης JToggleButton. Ένα Toggle κουμπί δημιουργείται με έναν από τους παρακάτω δομητές: JToggleButton() Δημιουργεί ένα κουμπί χωρίς περιεχόμενο (κείμενο ή εικόνα) JToggleButton(String str) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str JToggleButton(Icon icon) Δημιουργεί ένα κουμπί που εμφανίζει μία εικόνα icon JToggleButton(String str, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str δίνοντας και την αρχική κατάσταση του JToggleButton(Icon icon, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει μία εικόνα icon δίνοντας και την αρχική κατάσταση του JToggleButton(String str, Icon icon) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon JToggleButton(String str, Icon icon, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon και την αρχική κατάσταση του JToggleButton(Action act) Δημιουργεί ένα κουμπί όπου η εμφάνιση του και η κατάσταση του εισάγονται από το αντικείμενο act Δρ. Κεραμόπουλος Ευκλείδης 56

57 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class ToggleDemo { 6. JLabel jlab; 7. JToggleButton jtbn; 8. ToggleDemo() { 9. JFrame jfrm = new JFrame("Demonstrate a Toggle Button"); 10. jfrm.setlayout(new FlowLayout()); 11. jfrm.setsize(290, 80); 12. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 13. jlab = new JLabel("Button is off."); 14. jtbn = new JToggleButton("On/Off"); Δημιουργία Toggle button Δρ. Κεραμόπουλος Ευκλείδης 57

58 15. jtbn.additemlistener(new ItemListener() { 16. public void itemstatechanged(itemevent ie) { 17. if(jtbn.isselected()) 18. jlab.settext("button is on."); 19. else 20. jlab.settext("button is off."); 21. } 22. }); Διαχείριση των γεγονότων αλλαγής κατάστασης του κουμπιού jbtn με ανώνυμη εσωτερική τάξη 23. jfrm.add(jtbn); 24. jfrm.add(jlab); 25. jfrm.setvisible(true); 26. } 27. public static void main(string args[]) { 28. SwingUtilities.invokeLater(new Runnable() { 29. public void run() { 30. new ToggleDemo(); 31. } 32. }); 33. } 34. } Δρ. Κεραμόπουλος Ευκλείδης 58

59 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class TwoTBDemo implements ItemListener { 6. JLabel jlabalpha; 7. JLabel jlabbeta; 8. JToggleButton jtbnalpha; 9. JToggleButton jtbnbeta; 10. TwoTBDemo() { 11. JFrame jfrm = new JFrame("Two Toggle Buttons"); 12. jfrm.setlayout(new FlowLayout()); 13. jfrm.setsize(290, 80); 14. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 15. jlabalpha = new JLabel("Alpha is off. "); 16. jlabbeta = new JLabel("Beta is off."); Δρ. Κεραμόπουλος Ευκλείδης 59

60 17. jtbnalpha = new JToggleButton("Alpha"); 18. jtbnbeta = new JToggleButton("Beta"); 19. jtbnalpha.additemlistener(this); 20. jtbnbeta.additemlistener(this); 21. jfrm.add(jtbnalpha); 22. jfrm.add(jlabalpha); 23. jfrm.add(jtbnbeta); 24. jfrm.add(jlabbeta); 25. jfrm.setvisible(true); 26. } 27. public void itemstatechanged(itemevent ie) { 28. JToggleButton tb = (JToggleButton) ie.getitem(); 29. if(tb == jtbnalpha) 30. if(tb.isselected()) 31. jlabalpha.settext("alpha is on. "); 32. else 33. jlabalpha.settext("alpha is off. "); 34. else if(tb == jtbnbeta) 35. if(tb.isselected()) 36. jlabbeta.settext("beta is on."); 37. else 38. jlabbeta.settext("beta is off."); 39. } Πρόσθεση ακροατών για διαχείριση γεγονότων κατάστασης Η μέθοδος getitem() επιστρέφει το αντικείμενο που δημιούργησε το γεγονός Δρ. Κεραμόπουλος Ευκλείδης 60

61 40. public static void main(string args[]) { 41. SwingUtilities.invokeLater(new Runnable() { 42. public void run() { 43. new TwoTBDemo(); 44. } 45. }); 46. } 47. } Δρ. Κεραμόπουλος Ευκλείδης 61

62 Το CheckBox κουμπί (όπως και όλα τα κουμπιά καταστάσεων) μπορούν να αλλάξουν κατάσταση είτε προγραμματιστικά είτε από την επίδραση του χρήστη. Προγραμματιστικά θα πρέπει να χρησιμοποιηθεί η μέθοδος void setselected(boolean state) Όλα τα CheckBox κουμπιά που δημιουργούνται είναι αντικείμενα τη τάξης JCheckBox. Δρ. Κεραμόπουλος Ευκλείδης 62

63 Ένα Toggle κουμπί δημιουργείται με έναν από τους παρακάτω δομητές: JCheckBox() Δημιουργεί ένα κουμπί χωρίς περιεχόμενο (κείμενο ή εικόνα) JCheckBox(String str) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str JCheckBox(Icon icon) Δημιουργεί ένα κουμπί που εμφανίζει μία εικόνα icon JCheckBox(String str, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str δίνοντας και την αρχική κατάσταση του JCheckBox(Icon icon, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει μία εικόνα icon δίνοντας και την αρχική κατάσταση του JCheckBox(String str, Icon icon) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon JCheckBox(String str, Icon icon, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon και την αρχική κατάσταση του JCheckBox(Action act) Δημιουργεί ένα κουμπί όπου η εμφάνιση του και η κατάσταση του εισάγονται από το αντικείμενο act Δρ. Κεραμόπουλος Ευκλείδης 63

64 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class CBDemo implements ItemListener { 6. JLabel jlaboptions; 7. JLabel jlabwhat; 8. JLabel jlabchange; 9. JCheckBox jcboptions; 10. JCheckBox jcbspeed; 11. JCheckBox jcbsize; 12. JCheckBox jcbdebug; Δρ. Κεραμόπουλος Ευκλείδης 64

65 13. CBDemo() { 14. JFrame jfrm = new JFrame("Demonstrate Check Boxes"); 15. jfrm.setlayout(new GridLayout(7, 1)); 16. jfrm.setsize(300, 150); 17. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 18. jlaboptions = new JLabel("Options:"); 19. jlabchange = new JLabel(""); 20. jlabwhat = new JLabel("Options selected:"); 21. jcboptions = new JCheckBox("Enable Options"); 22. jcbspeed = new JCheckBox("Maximize Speed"); 23. jcbsize = new JCheckBox("Minimize Size"); 24. jcbdebug = new JCheckBox("Debug"); 25. jcbspeed.setenabled(false); 26. jcbsize.setenabled(false); 27. jcbdebug.setenabled(false); Τα τρία checkbox δημιουργούνται απενεργοποιημένα Δρ. Κεραμόπουλος Ευκλείδης 65

66 28. jcboptions.additemlistener(new ItemListener() { 29. public void itemstatechanged(itemevent ie) { 30. if(jcboptions.isselected()) { 31. jcbspeed.setenabled(true); 32. jcbsize.setenabled(true); 33. jcbdebug.setenabled(true); 34. } 35. else { 36. jcbspeed.setenabled(false); 37. jcbsize.setenabled(false); 38. jcbdebug.setenabled(false); 39. } 40. } 41. }); 42. jcbspeed.additemlistener(this); 43. jcbsize.additemlistener(this); 44. jcbdebug.additemlistener(this); Ελέγχεται το checkbox option. Αλλάζει την κατάσταση του και ανάλογα με την τιμή του ενεργοποιεί ή απενεργοποιεί τα άλλα τρία checkboxes Ορίζονται οι ακροατές για τα τρία checkbox 45. jfrm.add(jcboptions); 46. jfrm.add(jlaboptions); 47. jfrm.add(jcbspeed); 48. jfrm.add(jcbsize); 49. jfrm.add(jcbdebug); 50. jfrm.add(jlabchange); 51. jfrm.add(jlabwhat); 52. jfrm.setvisible(true); 53. } Δρ. Κεραμόπουλος Ευκλείδης 66

67 54. public void itemstatechanged(itemevent ie) { 55. String opts = ""; 56. JCheckBox cb = (JCheckBox) ie.getitem(); 57. if(ie.getstatechange() == ItemEvent.SELECTED) 58. jlabchange.settext("selection change: " + cb.gettext() + " selected."); 59. else 60. jlabchange.settext("selection change: " + cb.gettext() + " cleared."); 61. if(jcbspeed.isselected()) opts += "Speed "; 62. if(jcbsize.isselected()) opts += "Size "; 63. if(jcbdebug.isselected()) opts += "Debug "; 64. jlabwhat.settext("options selected: " + opts); 65. } Ελέγχεται ποιο check box επιλέχθηκε και εμφανίζεται το κατάλληλο μήνυμα 66. public static void main(string args[]) { 67. SwingUtilities.invokeLater(new Runnable() { 68. public void run() { 69. new CBDemo(); 70. } 71. }); 72. } 73. } Η cb.gettext() εμφανίζει Maximize Speed Δρ. Κεραμόπουλος Ευκλείδης 67

68 Στη περίπτωση του JRadioButton από ένα σύνολο επιλογών μόνο μία απάντηση μπορεί να επιλεχθεί. Χρησιμοποιώντας την τάξη ButtonGroup μπορούμε να δημιουργήσουμε σετ από radiobutton. Όλα τα RadioButton που δημιουργούνται είναι αντικείμενα τη τάξης JRadioButton. Κάθε JRadioButton δημιουργεί μία επιλογή από το σετ Δρ. Κεραμόπουλος Ευκλείδης 68

69 Ένα JRadioButton κουμπί δημιουργείται με έναν από τους παρακάτω δομητές: JRadioButton() Δημιουργεί ένα κουμπί χωρίς περιεχόμενο (κείμενο ή εικόνα) JRadioButton(String str) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str JRadioButton(Icon icon) Δημιουργεί ένα κουμπί που εμφανίζει μία εικόνα icon JRadioButton(String str, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str δίνοντας και την αρχική κατάσταση του JRadioButton(Icon icon, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει μία εικόνα icon δίνοντας και την αρχική κατάσταση του JRadioButton(String str, Icon icon) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon JRadioButton(String str, Icon icon, boolean state) Δημιουργεί ένα κουμπί που εμφανίζει το κείμενο str και την εικόνα icon και την αρχική κατάσταση του JRadioButton(Action act) Δημιουργεί ένα κουμπί όπου η εμφάνιση του και η κατάσταση του εισάγονται από το αντικείμενο act Δρ. Κεραμόπουλος Ευκλείδης 69

70 1. package ADX_project1; 2. import java.awt.*; 3. import java.awt.event.*; 4. import javax.swing.*; 5. class RBDemo implements ActionListener { 6. JLabel jlaboptions; 7. JLabel jlabwhat; 8. JCheckBox jcboptions; 9. JRadioButton jrbspeed; 10. JRadioButton jrbsize; 11. JRadioButton jrbdebug; Δρ. Κεραμόπουλος Ευκλείδης 70

71 13. RBDemo() { 14. JFrame jfrm = new JFrame("Demonstrate Radio Buttons"); 15. jfrm.setlayout(new GridLayout(6, 1)); 16. jfrm.setsize(300, 150); 17. jfrm.setdefaultcloseoperation(jframe.exit_on_close); 18. jlaboptions = new JLabel("Choose Option:"); 19. jlabwhat = new JLabel("Option selected: Speed"); 20. jcboptions = new JCheckBox("Enable Options"); 21. jrbspeed = new JRadioButton("Maximize Speed", true); 22. jrbsize = new JRadioButton("Minimize Size"); 23. jrbdebug = new JRadioButton("Debug"); 24. ButtonGroup bg = new ButtonGroup(); 25. bg.add(jrbspeed); 26. bg.add(jrbsize); 27. bg.add(jrbdebug); Τα τρία radiobutton μπαίνουν στην ίδια ομάδα 28. jrbspeed.setenabled(false); 29. jrbsize.setenabled(false); 30. jrbdebug.setenabled(false); Τα τρία radiobutton δημιουργούνται απενεργοποιημένα Δρ. Κεραμόπουλος Ευκλείδης 71

72 31. jcboptions.additemlistener(new ItemListener() { 32. public void itemstatechanged(itemevent ie) { 33. if(jcboptions.isselected()) { 34. jrbspeed.setenabled(true); 35. jrbsize.setenabled(true); 36. jrbdebug.setenabled(true); 37. } 38. else { 39. jrbspeed.setenabled(false); 40. jrbsize.setenabled(false); 41. jrbdebug.setenabled(false); 42. } 43. } 44. }); Ελέγχεται το checkbox option. Αλλάζει την κατάσταση του και ανάλογα με την τιμή του ενεργοποιεί ή απενεργοποιεί τα άλλα τρία radiobutton Δρ. Κεραμόπουλος Ευκλείδης 72

73 45. jrbspeed.addactionlistener(this); 46. jrbsize.addactionlistener(this); 47. jrbdebug.addactionlistener(this); Ορίζονται οι ακροατές για τα τρία radiobutton 48. jfrm.add(jcboptions); 49. jfrm.add(jlaboptions); 50. jfrm.add(jrbspeed); 51. jfrm.add(jrbsize); 52. jfrm.add(jrbdebug); 53. jfrm.add(jlabwhat); 54. jfrm.setvisible(true); 55. } 56. public void actionperformed(actionevent ie) { 57. String opts = ""; 58. if(jrbspeed.isselected()) opts = "Speed "; 59. else if(jrbsize.isselected()) opts = "Size "; 60. else opts = "Debug"; 61. jlabwhat.settext("option selected: " + opts); 62. } Ελέγχεται ποιο radiobutton επιλέχθηκε και εμφανίζεται το κατάλληλο μήνυμα Δρ. Κεραμόπουλος Ευκλείδης 73

74 63. public static void main(string args[]) { 64. SwingUtilities.invokeLater(new Runnable() { 65. public void run() { 66. new RBDemo(); 67. } 68. }); 69. } 70. } ΠΡΟΣΟΧΗ Θα πρέπει όλα τα radiobutton να τα βάλετε στην ίδια ομάδα κουμπιών για να λειτουργήσουν σωστά. Δρ. Κεραμόπουλος Ευκλείδης 74

75 Για το radiobutton έχει οριστεί η ιδιότητα buttongroup Δρ. Κεραμόπουλος Ευκλείδης 75

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Week 10: Graphical User Interfaces

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Week 12: GUIs with Swing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ & ΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΡΟΗΓΜΕΝΑ USER-INTERFACES ΣΕ JAVA ΜΕ ΤΗΝ ΒΙΒΛΙΟΘΗΚΗ SWING

ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ & ΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΡΟΗΓΜΕΝΑ USER-INTERFACES ΣΕ JAVA ΜΕ ΤΗΝ ΒΙΒΛΙΟΘΗΚΗ SWING ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ & ΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΡΟΗΓΜΕΝΑ USER-INTERFACES ΣΕ JAVA ΜΕ ΤΗΝ ΒΙΒΛΙΟΘΗΚΗ SWING ΠΑΠΑ ΟΠΟΥΛΟΥ ΧΡΙΣΤΙΝΑ Α. Ε. Μ. 1589 ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ ΠΑΠΑ

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

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 ετικέτα (ακόµη)

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

Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table.

Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table. DreamWeaver - Άσκηση 4η Πίνακες Παρακάτω θα δούμε πως μπορούμε να δημιουργούμε και να επεξεργαζόμαστε πίνακες, μια πολύ βασική δομή. Θα δούμε πως γίνεται εισαγωγή πίνακα, ένωση κελιών του πίνακα, προσθήκη

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

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

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

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

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

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

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

ΜΑΘΗΜΑ Στοίχιση Παραγράφων. 2. Εσοχές Παραγράφων ΣΤΟΧΟΙ:

ΜΑΘΗΜΑ Στοίχιση Παραγράφων. 2. Εσοχές Παραγράφων ΣΤΟΧΟΙ: ΜΑΘΗΜΑ 4 ΣΤΟΧΟΙ: 1. Στοίχιση Παραγράφων 2. Εσοχές Παραγράφων 3. Διάστημα Μεταξύ Γραμμών (Διάστιχο) 4. Απόσταση Μεταξύ Παραγράφων 5. Καθορισμός Στηλοθετών (Tabs) 6. Μετακίνηση Στηλοθετών 7. Διαγραφή Στηλοθετών

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

1. Κλικ στην καρτέλα Insert 2. Tables 3. Κλικ Table 4. Σύρουμε το δείκτη του ποντικιού και επιλέγουμε τον επιθυμητό αριθμό γραμμών και στηλών

1. Κλικ στην καρτέλα Insert 2. Tables 3. Κλικ Table 4. Σύρουμε το δείκτη του ποντικιού και επιλέγουμε τον επιθυμητό αριθμό γραμμών και στηλών ΜΑΘΗΜΑ 4 ΣΤΟΧΟΙ: 1. Προσθήκη Πίνακα (Table) 2. Εισαγωγή Και Μετακίνηση Κειμένου Σε Πίνακα 3. Εισαγωγή Στηλών Και Γραμμών Σε Πίνακα 4. Διαγραφή Στηλών Και Γραμμών Σε Πίνακα 5. Αλλαγή Πλάτους Στηλών Και

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Στην εφαρµογή αυτή ο χρήστης θα µ ορεί να φορτώνει, α οθηκεύει α λό αρχείο κειµένου

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

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

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

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ. Κειμενογράφος WORD

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ. Κειμενογράφος WORD ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ Κειμενογράφος WORD ΣΚΟΠΟΣ Η ανάπτυξη δεξιοτήτων επεξεργασίας κειμένου ΠΡΟΤΑΣΕΙΣ ΚΑΙ ΡΥΘΜΙΣΕΙΣ Άνω περιθώριο (top margin) : 2.49cm Κάτω περιθώριο (bottom margin) :5.99cm Αριστερό περιθώριο

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

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

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

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

ΜΑΘΗΜΑ 5 ΣΤΟΧΟΙ: Τρόπος 1:

ΜΑΘΗΜΑ 5 ΣΤΟΧΟΙ: Τρόπος 1: ΜΑΘΗΜΑ 5 ΣΤΟΧΟΙ: 1. Εισαγωγή Εικόνας 2. Εισαγωγή Αρχείου Γραφικού 3. Εισαγωγή Αυτόματου Σχήματος 4. Τροποποίηση Γραφικών Αντικειμένων 5. Αλλαγή Μεγέθους Γραφικού Αντικειμένου 6. Περιστροφή Γραφικού Αντικειμένου

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

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

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

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

Πίνακες HTML. Παναγιώτης Γαλάτης 1ο ΕΠΑΛ Ηρακλείου

Πίνακες HTML. Παναγιώτης Γαλάτης 1ο ΕΠΑΛ Ηρακλείου Πίνακες HTML Παναγιώτης Γαλάτης 1ο ΕΠΑΛ Ηρακλείου Τι είναι Πίνακας Ένας πίνακας στοιχείων αποτελείται από γραμμές και στήλες. Το σημείο τομής μιας γραμμής και μιας στήλης ονομάζεται κελί (cell( cell).

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

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

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

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

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

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

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

Εισαγωγή στο Libre Office. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

Εισαγωγή στο Libre Office. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγή στο Libre Office Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγή στο Libre Ofiice To LibreOffice είναι η ελεύθερη, πολυδύναμη (power-packed), σουΐτα προσωπικής παραγωγικότητας

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

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

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

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

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

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 2 o ΕΡΓΑΣΤΗΡΙO ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 2 o ΕΡΓΑΣΤΗΡΙO O δικός μας Calculator jtextbox1 με δεξί κλικ αλλαγή ονόματος σε calcbox Το πρώτο πρώτο, που θα κάνετε στην φόρμα σας είναι να αλλάξετε LAYOUT Μετά φτιάξτε

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

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

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

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

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

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

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

Καταχώρηση Αποδείξεων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Απαιτήσεις εργασίας

1. Απαιτήσεις εργασίας ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ Τμήμα Πολιτισμικής Τεχνολογίας & Επικοινωνίας 2 η Εργασία στο μάθημα «Δικτυακά Πολυμέσα Ι»: «Δημιουργία φόρμας για online αίτηση εργασίας με HTML - Javascript» Ημερομηνία παράδοσης:

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 18: Προγραμματισμός με Γραφικά (Graphics Programming) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι βιβλιοθήκες AWT και SWING, κύρια αντικείμενα -Προγραμματισμός με συμβάντα (event-driven

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

MICROSOFT OFFICE 2003

MICROSOFT OFFICE 2003 MICROSOFT OFFICE 2003 MICROSOFT EXCEL 2003 Επεξεργασία δεδοµένων Εισαγωγή κενών κελιών, γραµµών ή στηλών 1. Κάντε ένα από τα εξής: Εισαγωγή νέων κενών κελιών Επιλέξτε µια περιοχή (περιοχή: ύο ή περισσότερα

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

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

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

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

Νέες Τεχνολογίες στην Εκπαίδευση

Νέες Τεχνολογίες στην Εκπαίδευση Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Νέες Τεχνολογίες στην Εκπαίδευση Εικόνα, κείμενο και εικόνα Στεφανέας Πέτρος Ζαμαρίας Βασίλης Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

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

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

Δημιουργία παρουσιάσεων με το PowerPoint

Δημιουργία παρουσιάσεων με το PowerPoint Δημιουργία παρουσιάσεων με το PowerPoint Οι νέες Τεχνολογίες αλλάζουν ριζικά το τοπίο της εκπαίδευσης. Αλλάζουν τον τρόπο διδασκαλίας και μάθησης, τον τρόπο μελέτης αλλά και τον τρόπο έρευνας και αξιολόγησης,

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

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 /

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλλαγή της εμφάνισης κειμένου: μέγεθος γραμματοσειράς, είδος γραμματοσειράς

Αλλαγή της εμφάνισης κειμένου: μέγεθος γραμματοσειράς, είδος γραμματοσειράς 3.3.1.1 Αλλαγή της εμφάνισης κειμένου: μέγεθος γραμματοσειράς, είδος γραμματοσειράς Γραμματοσειρές Η λέξη γραμματοσειρά αναφέρεται στο στυλ που εμφανίζονται τα γράμματα. Παρακάτω ακολουθούν κάποια παραδείγματα,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άσκηση 9 Διαφημιστική εφαρμογή κινητού τηλεφώνου

Άσκηση 9 Διαφημιστική εφαρμογή κινητού τηλεφώνου Άσκηση 9 Διαφημιστική εφαρμογή κινητού τηλεφώνου Σε αυτή την άσκηση θα δημιουργήσουμε μια διαφημιστική πολυμεσική εφαρμογή προώθησης ενός κινητού τηλεφώνου με υλικό που μπορεί να ανακτηθεί από την ιστοσελίδα

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access... 9 Κεφάλαιο 2: Microsoft Access 2002... 20 Κεφάλαιο 3: Το σύστημα Βοήθειας του Microsoft Office ΧΡ... 36

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

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

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

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

Η κίνηση και η δομή επιλογής στο Scratch

Η κίνηση και η δομή επιλογής στο Scratch Η κίνηση και η δομή επιλογής στο Scratch Ας ξεκινήσουμε Θα σου δείξω πώς θα με κάνεις να κινηθώ 10 βήματα! Σύρε την εντολή ΚΙΝΗΣΟΥ από τη παλέτα Κίνηση μέσα στην περιοχή σεναρίων. Κάνε κλικ πάνω στην εντολή

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

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

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

7. Ανάπτυξη GUI σε Java

7. Ανάπτυξη GUI σε Java 7. Ανάπτυξη GUI σε Java Όταν ολοκληρώσετε αυτό το κεφάλαιο, θα μπορείτε: Να περιγράφετε το πακέτο AWT και τις συνιστώσες του. Να εξηγείτε τους containers (περιέκτες), components (συνιστώσες) και layout

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

Γράφοντας μουσική με το Finale 2006 (Δ μέρος)

Γράφοντας μουσική με το Finale 2006 (Δ μέρος) Γράφοντας μουσική με το Finale 2006 (Δ μέρος) Αυτό είναι το 4 ο άρθρο που περιλαμβάνει οδηγίες για την χρήση του FINALE 2006 για PC. Σ αυτή την ενότητα θα δούμε μερικά ακόμα εργαλεία του προγράμματος.

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

Διαχείριση Επιλογών Διαμόρφωσης

Διαχείριση Επιλογών Διαμόρφωσης 1 Περίληψη Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας διαχείρισης επιλογών διαμόρφωσης εγγραφών Εσόδων Εξόδων & Άρθρων Γενικής Λογιστικής στην εφαρμογή της σειράς

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

Ξεκινώντας με το MIT App Inventor 2 Μάθημα 4 Δημιουργώντας ένα απλό παιχνίδι (Κορώνα Γράμματα)

Ξεκινώντας με το MIT App Inventor 2 Μάθημα 4 Δημιουργώντας ένα απλό παιχνίδι (Κορώνα Γράμματα) Ξεκινώντας με το MIT App Inventor 2 Μάθημα 4 Δημιουργώντας ένα απλό παιχνίδι (Κορώνα Γράμματα) Σκοπός της συγκεκριμένης δραστηριότητας είναι η δημιουργία ενός απλού παιχνιδιού σε App Inventor. Η συγκεκριμένη

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

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

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

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

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)

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

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

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

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

Η γλώσσα HTML. Επιμέλεια: Δέγγλερη Σοφία

Η γλώσσα HTML. Επιμέλεια: Δέγγλερη Σοφία Η γλώσσα HTML Επιμέλεια: Δέγγλερη Σοφία Υπερκείμενο Το δομικό χαρακτηριστικό του Παγκόσμιου Ιστού Ένα αρχείο Απλό κείμενο και υπερσύνδεσμοι Υπερσύνδεσμος Μετάβαση σε διάφορα άλλα έγγραφα Αποτελείται από

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

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

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

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

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

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

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

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

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

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE... 2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ... 3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ... 4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)... 5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ... 6 Κεντρικό

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

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

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

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

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Εργαστήριο Εκπαιδευτικής Τεχνολογίας Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Φιλοσοφική Σχολή Τμήμα Φ.Π.Ψ., Τομέας Παιδαγωγικής Διευθυντής: Καθ. Χ. Κυνηγός Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Πίνακας

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

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

Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία ο χρήστης πρέπει να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής. Έκδοση Επιταγών Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Έκδοσης Επιταγών στην εφαρμογή Λογιστική Διαχείριση της σειράς HyperΛογιστική. Παρακάτω προτείνεται

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

Εργαστηριακή Άσκηση 4 Μορφοποίηση Κειμένου μέσω του

Εργαστηριακή Άσκηση 4 Μορφοποίηση Κειμένου μέσω του Μορφοποίηση χαρακτήρων Όταν ανοίγουμε το Word η γραμματοσειρά που υπάρχει είναι προκαθορισμένη. Το πλαίσιο διαλόγου Γραμματοσειρά μας επιτρέπει να κάνουμε περισσότερες μορφοποιήσεις. Επιλέγουμε Μορφή Απόσταση

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

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος 2013-2014 Εκπαιδευτικός: Παπαδάκης Σταµάτης

Γενικό Λύκειο Κρουσώνα - Σχολικό έτος 2013-2014 Εκπαιδευτικός: Παπαδάκης Σταµάτης Οδηγάµε το Γενικό Λύκειο Κρουσώνα - Σχολικό έτος 2013-2014 Φύλλο Εργασίας Προγραµµατισµός Εφαρµογής στο AppInventor http://ai2.appinventor.mit.edu Ακολουθώντας τα βήµατα αυτού του φύλλου εργασίας, θα αναπτύξουµε

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