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

Σχετικά έγγραφα
VK -14/10/2016 Σελίς 1

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

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

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

New Project Windows Forms Applications

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

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

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

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

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

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

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

VK - 04/11/2016- [1]

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

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

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

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

4 η Εργαστηριακή Άσκηση

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

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

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

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

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

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

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

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

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

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

API: Applications Programming Interface

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

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

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

VK -30/10/ [1]

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

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

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

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


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

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

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

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

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008

Διαδικτυακές Εφαρμογές Ενότητα 3: Ανάπτυξη JavaEE 6 εφαρμογής με JSF2, EJB3 και JPA

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

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

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

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

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

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

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

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

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

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

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

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

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

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

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

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004)

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

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

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

ΕΠΛ233 Βασικά στοιχεία προγραµµατισµού στη JAVA

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

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

2 η Εργαστηριακή Άσκηση

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

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

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

4 Συλλογές Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

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

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

8. Μέθοδοι (Methods)

Transcript:

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 1 o ΕΡΓΑΣΤΗΡΙO-3ασκήσεις Θα χρησιµοποιηθεί το πακέτο ΝetBeansIDE Θα δηµιουργήσουµε µια νέα εφαρµογή/ Project µε όνοµα π.χ. Ergastirio1 επιλέγοντας από το 1 ο µενού File / New Project. Κατόπιν επιλέγουµε από το Categories το Java, και από το Projects Java Application και πατάµε το Next button. Στο παράθυρο Νew Java Application θα καθοριστεί Project Name: το όνοµα της εφαρµογής π.χ. Ergastirio1 (καλό είναι να βάζετε και το όνοµά σας π.χ. Erg1Georgiou) Project Location το σηµείο/location που θέλουµε να αποθηκευτεί (µε Browse επιλέγουµε την διαδροµή) Ξετσεκάρεται το "Create Main Class" checkbox (που είναι ήδη τσεκαρισµένο). Αν όλα ΟΚ πατάµε το "Finish" button Θα δηµιουργηθούν (σταδιακά) 3 φόρµες/πλαίσιο µε όνοµα π.χ. Ask1, Ask2, Ask3. Για την 1 η φόρµα Ask1 Με δεξί κλικ στο Source Packages του project Ergastirio1 επιλέγουµε New -> JFrame Form (Το πλαίσιο αυτό θα είναι η Swing main class, της εφαρµογής) ώστε όνοµα κλάσης Class Name πχ Αsk1. Αν όλα ΟΚ πατάµε το "Finish" button Oι 3 ασκήσεις µπορούν να µπουν στο ίδιο project (Ergastirio1) δηµ/ντας 3 JFrame Form. (Για την 2 η άσκηση µε δεξί κλικ στο project/properties και Run θα αλλάξουµε την Main Class από Αsk1 σε Ask2 και για την 3 η άσκηση σε Ask3 κοκ). Ασκηση 1 η - Ποιο κουµπί πατήθηκε Όταν συμβαίνει ένα γεγονός τότε αυτό διαχειρίζεται από τη μέθοδο ΑctionPerformed private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); jlabel1.settext( "You pressed the 2nd button" ); jbutton1 jlabel1 jbutton2 Να αλλάζει το κείμενο της ετικέτας (jlabel1), έτσι ώστε να γράφει ποιο κουμπί πατήθηκε (το 1 ο ή το 2 ο ). Μέθοδος settext Καθορίζει το κείμενο μιας ετικέτας (default value είναι null). VK -14/10/2016 Σελίς 1

Ασκηση 2 η - Πόσος χρόνος πέρασε import java.util.calendar; import java.util.date; Calendar class: H μέθοδος getinstance επιστρέφει ένα Calendar object με τιμές στα πεδία του σύμφωνα με την τρέχουσα ημερομηνία και ώρα: Calendar cal=calendar.getinstance(); //αρχικοποίηση αντικειμένου με τρέχουσες τιμές. Date mera=cal.gettime(); // η τιμή του Calendar's time σε μορφή date ή long wra =cal.gettimeinmillis(); // η τιμή του Calendar's time σε μορφή long /milliseconds. jlabel1.settext( "Today is:" + mera + "\nlong: "+ wra/1000 ); // Variables declaration private long starttime; Global variable jbutton1 jlabel1 jbutton2 Να αλλάζει το κείμενο της ετικέτας έτσι ώστε να γράφει πόσος χρόνος μεσολάβησε από το πάτημα του 1 ου με το 2 ο κουμπί private void jbutton1actionperformed(java.awt.event.actionevent evt) { Calendar cal =Calendar.getInstance(); starttime=cal.gettimeinmillis()/1000; jlabel1.settext("calculating"); Calendar cal =Calendar.getInstance(); long stoptime=cal.gettimeinmillis()/1000; Local variable long ellapsedtime= stoptime - starttime; jlabel1.settext( "Time" +ellapsedtime); VK -14/10/2016 Σελίς 2

Ασκηση 3 η - Κωδικοποιητής jlabel1 jtextfield1 Μέσα στο κουτί του TextField μπορώ να γράψω κείμενο. Αρχικά το θέλουμε άδειο. Το ίδιο θα γίνεται και με το κουμπί Reset (jbutton3) (άδεια κείμενα) jbutton1 jbutton2 jbutton3 Να κωδικοποιείται το κείμενο του 1 ου ΤextField και να εμφανίζεται κωδικοποιημένο στο 2 ο ΤextField private void jbutton1actionperformed (java.awt.event.actionevent evt) { StringBuilder str = new StringBuilder(jTextField1.getText()); for ( int i = 0; i < str.length(); i++ ) { str.setcharat( i, (char) (str.charat(i) + 1) ); jtextfield2.settext(str.tostring() ); StringBuilder str = new StringBuilder(jTextField2.getText()); for (int i = 0; i < str.length(); i++) { str.setcharat(i, (char) (str.charat(i) - 1)); jtextfield1.settext(str.tostring() ); private void jbutton3actionperformed(java.awt.event.actionevent evt) { jtextfield1.settext(null); jtextfield2.settext(null); Μέθοδος gettext Eπιστρέφει το σε String το κείμενο του ΤextΣυστατικού (εδώ έχουμε TextField). H μεταβλητή που θα χρησιμοποιήσω για το κείμενο του TextField στην Άσκηση αυτή, δεν θα είναι String αλλά StringBuilder Μέθοδος ανεύρεσης χαρακτήρα μιας συμβολοσειράς public char CharAt(int index) : επιστρέφει τον χαρακτήρα που βρίσκεται στη θέση index πχ char ch=jtextfield1.gettext().charat(2); Μέθοδος αλλαγής χαρακτήρα συμβολοσειράς VK -14/10/2016 Σελίς 3

Ένα String δεν μπορεί να τροποποιηθεί σε αντίθεση με ένα StringBuilder public void setcharat(int index, char ch) : Ο χαρακτήρας στη θέση index αλλάζει και γίνεται ch. Πχ. StringBuilder s =new StringBuilder("text"); //δεν μπορώ να θέσω κατευθείαν s="text" s.setcharat(2,'x'); Η συμβολοσειρά μετατρέπεται σε μια νέα ακολουθία χαρακτήρων, που είναι ταυτόσημη με την παλιά ακολουθία χαρακτήρων, εκτός του ότι περιέχει τον χαρακτήρα ch στη θέση του δείκτη. Ο index πρέπει να είναι 0, and από το μήκος της / length() Συμβολοσειρές: String, StringBuffer, StringBuilder Classes String για σταθερό String Aφού δημιουργηθούν οι τιμές τους δεν μπορούν να αλλαχθούν! Η Java υποστηρίζει την συνένωση/concat συμβολοσειρών ( + ), καθώς και τη μετατροπή/conversion άλλων αντικειμένων σε strings. Οι ενώσεις String υλοποιούνται μέσω των κλάσεων StringBuilder (ή StringBuffer ) και την μέθοδο append. Οι μετατροπές σε String υλοποιούνται με τη μέθοδο tostring, που ορίζεται στην κλάση Object και κληρονομείται από όλες τις κλάσεις σε Java. StringBuffer για τροποποιήσιμο String thread-safe(***) Ένα StringBuffer είναι σαν ένα String, αλλά μπορεί να τροποποιηθεί. Σε οποιοδήποτε χρονικό σημείο, περιέχει κάποια ιδιαίτερη αλληλουχία χαρακτήρων, αλλά το μήκος και το περιεχόμενο της αλληλουχίας μπορεί να μεταβληθεί μέσω ορισμένων μεθόδων κλήσεων. Βασικές μέθοδοι είναι οι append and insert http://docs.oracle.com/javase/7/docs/api/java/lang/stringbuilder.html StringBuilder για τροποποιήσιμο String non thread-safe Παρόμοιο με το StringBuffer μη ασφαλές για πολλαπλά threads. Για ένα thread είναι πιο γρήγορο από το StringBuffer. Το StringBuilder μετατρέπεται σε String με την μέθοδο tostring (). (***) Ένα κομμάτι κώδικα είναι thread-safe όταν επεξεργαζόμενο κοινά δεδομένα, εγγυάται την ασφαλή εκτέλεση από πολλαπλά threads ταυτόχρονα (πχ a=0; a=a+1; b=a ; ίδιο αποτέλεσμα για το b=1) VK -14/10/2016 Σελίς 4

String StringBuffer StringBuilder ------------------------------------------------------------------------------- Storage Area Constant String Pool Heap/σωρός Heap Modifiable No (immutable) Yes( mutable ) Yes( mutable ) Thread Safe Yes Yes No Performance Fast Very slow Fast VK -14/10/2016 Σελίς 5