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

Σχετικά έγγραφα
Εργαστήριο 1-1 η Άσκηση - Ανάλυση

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

New Project Windows Forms Applications

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

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

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

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

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

8.1 Top-Level Swing Containers και Swing Components

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

Week 10: Graphical User Interfaces

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

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

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

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

ηµιουργία ιαλογικών Προγραµµάτων για το Web

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

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

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

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

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

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

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

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

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

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

VK - 04/11/2016- [1]

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

Week 12: GUIs with Swing

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

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

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

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

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

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

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

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

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

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

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

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

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

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

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

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

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

Εφαρμογή Αναζήτησης στον Ελληνικό Γεωγραφικό Χώρο

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

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

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

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων Επέκταση: Πέρασα ή δεν πέρασα? Version 2

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

Προγραμματισμός Διαδικτύου

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

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

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

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων

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

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

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

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

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

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

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

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

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

Μάθημα 1 [3/11/2015].

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

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

JAVA TUTORIAL ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1. Τί κάνει τη Java να ξεχωρίζει; Εγκαθιστώντας τη Java

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

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

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

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

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

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

API: Applications Programming Interface

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Υπολογιστικών Φύλλων. 2. Κύρια Οθόνη Της Εφαρμογής Υπολογιστικών Φύλλων ΣΤΟΧΟΙ:

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

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

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

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

(Διαφάνειες Νίκου Βιδάκη)

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

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

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

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Επεξεργασίας Κειμένου. 2. Κύρια Οθόνη Της Εφαρμογής Κειμένου ΣΤΟΧΟΙ:

Transcript:

Ο Source Kώδικας της JFrame Φόρµας µε όνοµα Αsk1 Με δεξί κλικ στο Source Packages του project Ergastirio1 µε New -> JFrame Form επιλέξαµε να δηµιουργηθεί η JFrame φόρµα (πλαίσιο) µε όνοµα κλάσης Class Name το Αsk1.java Αυτή η φόρµα πλαίσιο αυτό θα είναι η Swing main class, της εφαρµογής (γιαυτό πριν κατά την δηµιουργία του project ξετσεκάρεται το "Create Main Class" ). ηµιουργείται αυτόµατα κώδικας (Source) που περιγράφει την κλάση Ask1 ως επέκταση (extend) της JFrame κλάσης του πακέτου javax.swing. Η κλάση Ask1 αποτελείται από τον οµητή, και 2 µεθόδους : την Μέθοδο Αρχικοποίησης initcomponents την Main (µε την run). Στο δομητή της κλάσης καλείται η Μέθοδος initcomponents που είναι σε γκρι ζώνη: δηλ. ΔΕΝ ΤΡΟΠΟΠΟΕΙΤΑΙ Μέσα στην μέθοδο main η μέθοδος run. Η run δημιουργεί και εμφανίζει την φόρμα Ask1 με new Ask1().setVisible(true /* @author -VK */ public class Ask1 extends javax.swing.jframe { /* Creates new form Ask1 */ public Ask1() { initcomponents( /* This method is called from within the constructor to initialize the form. Do NOT modify this code. */ @SuppressWarnings("unchecked" + "" + "") // <editor-fold defaultstate="collapsed" desc="generated Code"> private void initcomponents() { Κλείνει η εφαρµογή όταν setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close κάνω click στο close box javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane() getcontentpane().setlayout(layout layout.sethorizontalgroup(.addgap(0, 156, Short.MAX_VALUE) layout.setverticalgroup(.addgap(0, 114, Short.MAX_VALUE) pack( // </editor-fold> VK -14/10/2016 Σελίς 1

/* @param args the command line arguments */ public static void main(string args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.uimanager.setlookandfeel(info.getclassname() break; catch (ClassNotFoundException ex) { java.util.logging.logger.getlogger(ask1.class.getname()).log(java.util.logging.level.severe, null, ex catch (InstantiationException ex) { java.util.logging.logger.getlogger(ask1.class.getname()).log(java.util.logging.level.severe, null, ex catch (IllegalAccessException ex) { java.util.logging.logger.getlogger(ask1.class.getname()).log(java.util.logging.level.severe, null, ex catch (javax.swing.unsupportedlookandfeelexception ex) { java.util.logging.logger.getlogger(ask1.class.getname()).log(java.util.logging.level.severe, null, ex //</editor-fold> /* Create and display the form */ java.awt.eventqueue.invokelater(new Runnable() { public void run() { new Ask1().setVisible(true Κάνει ορατά όλα τα αντικείμενα // Variables declaration - do not modify // End of variables declaration //Μπορούμε να προσθέσουμε κώδικα αν επιθυμούμε σύμφωνα με τους γνωστούς κανόνες Τα σχόλια σε πολλές γραμμές μπαίνουν με /* σχόλιο */ ή σε μια γραμμή με //σχόλιο Το JFrame Αsk1, είναι ένας εξωτερικός υποδοχέας, που υλοποιεί ένα παράθυρο, µε µπάρα τίτλου και κουµπιά για ελαχιστοποίηση, µεγιστοποίηση και κλείσιµο του παραθύρου. VK -14/10/2016 Σελίς 2

Προσθέτοντας ένα κουμπι :jbutton και μια ετικέτα:jlabel στο πλαίσιο Με drag and drop θα σύρω από την παλέτα μέσα στο frame, ένα κουμπί και μια ετικέτα και θα τα αφήσω σε αρεστό σημείο. Κατόπιν θα διορθώσω/ αλλάξω το κείμενό τους, μέσω των ιδιοτήτων τους (με δεξι κλικ) Πως αλλάζει ο κώδικας? 1. Μέσα στην initcomponents() θα προστεθούν και θα αλλάξουν γραμμές που αφορούν τα δυο αυτά συστατικά: private void initcomponents() { jbutton1 = new javax.swing.jbutton( jlabel1 = new javax.swing.jlabel( setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close jbutton1.settext("jbutton1" Aν το κείµενο του κουµπιού αλλαχθει σε First θα έχω jlabel1.settext("jlabel1" jbutton1.settext("first" javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane() getcontentpane().setlayout(layout layout.sethorizontalgroup(.addgroup(layout.createsequentialgroup().addcontainergap().addgroup(.addcomponent(jbutton1).addcomponent(jlabel1, javax.swing.grouplayout.preferred_size, 136, javax.swing.grouplayout.preferred_size)).addcontainergap(javax.swing.grouplayout.default_size, Short.MAX_VALUE)) layout.setverticalgroup(.addgroup(layout.createsequentialgroup().addgap(24, 24, 24).addComponent(jButton1).addGap(18, 18, 18).addComponent(jLabel1).addContainerGap(35, Short.MAX_VALUE)) pack( // </editor-fold> VK -14/10/2016 Σελίς 3

2. Προστίθενται (στο τέλος) και οι δηλώσεις των μεταβλητών // Variables declaration - do not modify private javax.swing.jbutton jbutton1; private javax.swing.jlabel jlabel1; // End of variables declaration JFC και Swing To JAVA SWING είναι ένα API της JAVA το οποίο χρησιµοποιείται για την κατασκευή Γραφικών Προγραµµάτων (εξέλιξη του ΑWT). Είναι κοµµάτι του JFC (Java Foundation Classes) που περιλαµβάνει ένα σύνολο χαρακτηριστικών για τη δηµιουργία γραφικών διεπαφών χρήστη (GUIs), προσθέτοντας λειτουργικότητα πλούσιων γραφικών και διαδραστικότητα µε εφαρµογές Java. ύο είναι τα κύρια χαρακτηριστικά της Swing Ελαφρά συστατικά Pluggable εµφάνιση και αίσθηση Eτσι η εµφάνιση µίας διεπιφάνειας µπορεί να ρυθµίζεται ανάλογα µε την εµφάνιση και αίσθηση (look and feel) που έχουµε επιλέξει και δυναμικά την ώρα της εκτέλεσης. Τέσσερις µορφές είναι διαθέσιµες στην Swing Metal (Java) Windows (Microsoft) Motif (XWindows) Ορισµένη από το Χρήστη Swing Συστατικά (Υποδοχείς και άλλα controls) Ο υποδοχέας του ανώτερου επιπέδου αποτελείται από αντικείµενο της τάξης JRootPane και ο ρόλος του είναι να περιέχει όλα τα συστατικά της εφαρµογής και ένα προαιρετικό µενού. Ο υποδοχέας ανώτερου επιπέδου αποτελείται από τρεις υποδοχείς: Glass pane Είναι διάφανος και ο ρόλος του είναι να διαχειρίζεται τα γεγονότα που δηµιουργούνται από τις ενέργειες που προκαλούνται µε το ποντίκι στο υποδοχέα ανώτερου επιπέδου και τα συστατικά του. Layered pane ιαχειρίζεται τις αλληλοεπικαλύψεις των συστατικών, µε άλλα λόγια επιτρέπει τα συστατικά να τοποθετούνται σε επίπεδα. Content pane Οι δύο προηγούµενοι υποδοχείς χρησιµοποιούνται πίσω από τη «σκηνή». Ο υποδοχέας όπου ουσιαστικά προστίθενται όλα τα συστατικά είναι ο συγκεκριµένος. VK -14/10/2016 Σελίς 4

Τα συστατικά/component είναι όλα τα στοιχεία που µπορεί να περιέχει µία διεπιφάνεια πχ: κουµπιά/button, µενού/menu κτλ. Οι υποδοχείς/containers είναι και αυτοί συστατικά. Κάθε Swing εφαρµογή θα πρέπει να περιέχει έναν εξωτερικό υποδοχέα, ο οποίος θα περιλαµβάνει όλα τα συστατικά της διεπιφάνειας. Ένας υποδοχέας µπορεί να περιλαµβάνει και άλλους υποδοχείς. Συστατικά Όλα τα Swing συστατικά (εκτός από 4 συστατικά υποδοχείς) είναι παιδιά της τάξης JComponent και περιέχονται στο πακέτο javax.swing Υπάρχουν δύο ειδών υποδοχείς: εξωτερικοί και εσωτερικοί Οι (τέσσερις) εξωτερικοί είναι βαριά συστατικά και δεν είναι παιδιά της JComponent : JFrame, JApplet, JWindow, JDialog Οι (δυο) εσωτερικοί είναι ελαφριά συστατικά και είναι παιδιά της JComponent JPanel, JRootPane VK -14/10/2016 Σελίς 5