Human Computer Interaction JAVA APPLETS JAVA AWT Μελισσόβας Δημήτρης Owda Zaher.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Advertisements

Οπτικός Προγραμματισμός  Περιέχει έτοιμα components υλοποίησης κοινών διαλόγων  OpenDialog : διάλογος για την επιλογή αρχείου για άνοιγμα.  SaveDialog.
Οπτικός Προγραμματισμός  Παράγεται από την κλάση TStatusBar. Περιέχει έναν αριθμό από Panels που μπορούν να περιέχουν πληροφορίες για την κατάσταση του.
Διευκρινήσεις κώδικα Hy240b project 2014 phase 1.
HTML.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Windows Programming Web controls. •Τα web forms είναι container αντικείμενα σχεδιασμένα για να κάνουνε host άλλα controls, όπως α) Web server controls,
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γραφικά Ενδιάμεσα Χρήστη στην Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
Ειδικά Θέματα Η/ΥΕργαστήριο 7 Χ. Καραγιαννίδης1/17 Γλώσσα HTML Εργαστήριο 7 Χαράλαμπος Καραγιαννίδης
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Ιστοσελίδες -- Web-site. Εισαγωγή Στατικές ιστοσελίδες Δυναμικές ή Διαδραστικές ιστοσελίδες:  Ο τρόπος παρουσίασης και τα περιεχόμενά της ιστοσελίδας.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events.
Επικοινωνία Ανθρώπου Μηχανής Καρακίτσος Ηλίας ΑΜ 614 Ιωάννου Ελένη ΑΜ 647.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
Εργαστήριο Πολυμέσων Java references site Java tutorials
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Abstract Window Toolkit (AWT) Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία και Πακέτο που περιέχει τις απαραίτητες κλάσεις για τη δημιουργία.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
HTML-PHP Καμπέρης Άρης Α.Μ. 763 Zaher Owda Α.Μ. 849.
Εφαρμογές Πολυμέσων: Εισαγωγή στην HTML (1)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στον Προγ/μό Η/Υ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Κατανεμημένα Συστήματα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός Διαδικτύου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Web Services στη C# Εργαστήριο 3
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
HTML - CSS Δίνεται παρακάτω ο κώδικας HTML μιας ιστοσελίδας
Swing II Εβδομάδα Νο. 6.
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Week 10: Graphical User Interfaces
Επικοινωνίας Java με Swing
Μεταγράφημα παρουσίασης:

Human Computer Interaction JAVA APPLETS JAVA AWT Μελισσόβας Δημήτρης Owda Zaher

Περιορισμοί ασφάλειας Τα applets δε μπορούν: •Να διαβάσουν από τον τοπικό δίσκο του client –Μπορούν να παρουσιάσουν σελίδες διαθέσιμες στο Web •Να γράψουν στον τοπικό δίσκο του client –Ο browser μπορεί να αποφασίσει κάνει cache κάποια αρχεία σχετιζόμενα με τα applets. Δεν είναι στην δικαιοδοσία του applet να αποφασίσει ποια. •Να ανοίξουν άλλα connections, περα από από τον webserver –Περιορίζει τα applets να βλέπουν αρχεία πίσω από network firewalls

Δε μπορούν: •Να εκτελέσουν προγράμματα στο μηχάνημα του χρήστη –Η Java έχει τη δυνατότητα να εκτελέσει τοπικά εγκατεστημένα προγράμματα. –Αυτό δεν επιτρέπεται στα applets για λόγους ασφαλείας •Να ανακαλύψουν προσωπικά δεδομένα του χρήστη –Τα ευαίσθητα στοιχεία του χρήστη, όπως το username ή στοιχεία για το σύστημα (πχ filesystem ktlp) –Μπορούν ωστόσο να μάθουν το όνομα του host από το οποίο τρέχουν (αυτό το ξέρει ήδη ο HTTP server)

Applet Template Import java.applet.Applet; Import java.awt.*; Public class AppletTemplate extends Applet { // Variable declarations Public void init() { // Variable initialisations, image loading, etc. } Public void paint(Graphics g) { // Drawing operations }

HTML Template A Template for Loading Applets Hello World! Error!

Παράδειγμα: Applet Import java.applet.Applet; Import java.awt.*; Public class MyTest extends Applet { private Image My_Image; Public void init() { // constructor setBackground(Color.white); setFont(new Font(“Arial”, Font.BOLD, 14)); My_Image = getImage(getDoccumentBase(), “pictures/test.gif”); add(new Label(“Test!”)); } Public void paint(Graphics g) { //drawing g.drawImage(My_Image, 0, 50, this); }

Κάλεσμα My Test! My Image Error!

Ο κύκλος ζωής ενός Applet… •Public void init() –Καλείται μονάχα την πρώτη φορά που φορτώνεται το applet στον browser –Όχι κάθε φορά που εκτελείται αυτό •Public void start() –Καλείται αρχικά αμέσως μετά την init() –Ξανακαλείται κάθε φορά που ο χρήστης επιστρέφει στην σελίδα –Χρησιμοποιείται για να εκκινεί animations •Public void paint(Graphics g) –Καλείται αμέσως μετά από την start() –Ξανακαλείται όταν ο browser ξανασχεδιάζει την εικόνα. Συνήθως όταν καλύπτεται ένα μικρό μέρος και επανεμφανίζεται

Ο κύκλος ζωής ενός Applet… (Συνέχεια) •Public void stop() –Κάθε φορά που ο user φεύγει από την σελίδα –Χρήσιμο για να σταματάει τα animations •Public void destroy() –Όταν κλείνει το applet

Χρήσιμες συναρτήσεις •getCodeBase, getDocumentBase –Επιστρέφουν τα URL του •Applet file – getCodeBase() •HTML file – getDocumentBase() •getSize –Επιστρέφει τις διαστάσεις του applet (width, length) •getGraphics –Επιστρέφει το Graphics object για το applet –Το Graphics διαγράφεται μεταξύ διαδοχικών paint()

Χρήσιμες συναρτήσεις (Συνέχεια) •showDocument (ApplectContext method) getAppletContext().showDocument(…) –Ζητάει από τον browser να παρουσιάσει μία Web page –Μπορεί να είναι και FRAME •showStatus –Εμφανίζει ένα string στο status line του browser •getCursor, setCursor –Ορίζει τον τύπο του κέρσορα για το ποντίκι. Πχ: CROSSHAIR_CURSOR, HAND_CURSOR, WAIT_CURSOR

Χρήσιμες συναρτήσεις (Συνέχεια) ! •getAudioClip, play –Παίζει ένα αρχείο ήχου, από μια απομακρυσμένη τοποθεσία •getBackground, setBackground –Ρυθμίζει το χρώμα του background για το applet •getForeground, setForeground –Ρυθμίζει το τρέχον χρώμα της σχεδίασης

Embedding σε HTML … •Απαραίτητα δεδομένα –CODE •Ρυθμίζει το filename του αρχείου Java class, ώστε αυτό να φορτωθεί •Σχετικό path, με βάση το τρέχον HTML file, εκτός άμα οριστεί η παράμετρος CODEBASE κατάλληλα –WIDTH και HEIGHT •Ορίζει τις διαστάσεις του applet •Οι τιμές μπορεί να οριστούν τόσο σε pixels όσο και σε ποσοστό του browser window

Embedding σε HTML (Συνέχεια) •Άλλοι παράμετροι –ALIGN HSPACE και VSPACE •Ελέγχει την τοποθέτηση και τα borders. Παρόμοιο με το IMG της HTML –ARCHIVE •Ορίζει JAR file (zip file με.jar extention) το οποίο περιέχει όλες τις κλάσεις και εικόνες που χρησιμοποιούνται από τα applets •Η συμπίεση εξοικονομεί πάρα πολύ χρόνο, ειδικότερα σε περίπτωση αρκετών αρχείων –ΝΑΜΕ •Δίνει όνομα στο applet

Καθορισμός παραμέτρων Customizable ‘ello World applet Error! Error! Error!

Διάβασμα παραμέτρων •Χρήση της getParameter(name) • name: case sensitive Public void init() { Color backgrround = Color.gray; Color foreground = Color.darkGray; String backgroundType = getParameter(“BACKGROUND”); If (backgroundType != null) { If (backgroundType.equalsIgnoreCase(“LIGHT”)) { Background = Color.white; Foreground = Color.black; } else if (backgroundType.equalsIgnoreCase(“DARK”)) { background = Color.black; foreground = Color.white; } … }

Διάβασμα παραμέτρων (Αποτέλεσμα)

Μέθοδοι Graphics •drawString(string, left, bottom) –Ζωγραφίζει το string, στην τοποθεσία left, bottom •drawRect(left, top, width, height) –‘Άδειο’ ορθογώνιο •fillRect(left, top, width, height) –‘Γεμάτο’ ορθογώνιο •drawLine(x1, y1, y2, y2) –Γραμμή

Μέθοδοι Graphics •drawOval, fillOval –Σχεδιάζει ένα οβάλ σχήμα. Τα arguments καθορίζουν τα ορθογώνια borders •drawPolygon, fillPolygon –Τα points αποθηκεύονται σε array ή στην Polygon class. –By default κλειστή πολυγωνική γραμμή. Εναλακτικά drawPolyline •drawImage –Φορτώνει μία εικόνα –Υποστηρίζει JPG ή GIF format

Drawing Color •setColor, getColor –Καθορίζει το foreground color (χρώμα σχεδίασης) –Default: το foreground color του παραθύρου –Υπάρχουν προκαθορισμένα χρώματα (Color.red, Color.yellow κτλπ), ή new Color(r, g, b)

Graphics Font •setFont, getFont –Καθορισμός του font για strings

Άλλα modes •setXORMode –Χρήσιμο για selections •setPaintMode –Επιστροφή στο κανονικό mode

Παράθυρα •Containers –Τα περισσότερα παράθυρα θεωρούνται Containers. Μπορούν να κρατάνε αλλα παράυθρα ή GUI components. Δεν ισχύει για Canvas •Layout Managers –Για να ρυθμίζουν μεγέθη και θέσεις components πάνω στα παράθυρα •Events –Για input (mouse, keyboard etc)

Παράθυρα (Συνέχεια) •Σχεδιασμός –Subclass με δικιά της paint method •Popup Windows –(Frame και Dialog) έχουν δικιά τους μπάρα –(Canvas και Panel) πρέπει να γίνουν embed

Components •Χρήσιμες συναρτήσεις – getBackground/setBackground.. –Paint – setVisible (true, false) –List –getParent –…

Παράδειγμα Import java.applets.Applet; Import java.awt.* Public class ButtonTest extends Applet { public void init() { String[] labelPrefixes = { “Start”, “Stop”, “Pause”, “Resume” }; For (int = 0; I < 4; i++) { add(new Button(labelPrefixes[i] + “ Thread 1)); }

Παράδειγμα 2 (Confirmation Dialog) Class Confirm extends Dialog implements ActionListener { Private Button yes, no; Public Confirm(Frame parent) { super(parent, “Confirmation”, true); setLayout(new FlowLayout()); add(new Label(“Really quit?”)); yes = new Button(“Yes”); yes.addActionListener(this); no = new Button(“No”); no.addActionListener(this); add(yes); add(no); pack(); setVisible(true); }

Συνέχεια Public void actionPerformed(ActionEvent event) { if (event.getSource() == yes) { System.exit(0); } else { dispose(); }

Χρησιμοποίηση του Dialog Public class ConfirmTest extends Frame { public static void main(String[] args) { new ConfirmTest(); } public ConfirmTest() { super(“Confirming QUIT”); setSize(200, 200); addWindowListener(new ConfirmListener()); setVisible(true); } public ConfirmTest(String title) { super(title); } private class ConfirmListener extends WindowAdapter { public void windowClosing(WindowEvent event) { new Confirm(ConfirmText.this); }