• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Lectures 1 6
 

Lectures 1 6

on

  • 86 views

 

Statistics

Views

Total Views
86
Views on SlideShare
86
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Lectures 1 6 Lectures 1 6 Presentation Transcript

    • 1 α π ά ε η1 π Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
    • α    π π π α. α α υ π π π ά ε η1 φα α α χ α π α α αφ α φα α υα α α υα α υ, α α α . α υ π αφ α α α α α φ α α α α α ( χ π.χ. J2εE, Android) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α
    • απ  υ π απ α α υ α α α αυ π π υπ α cloud υπ . χ υ α α χ π α α υπ α π φ . υ α α απ α απ 3 π υ υπ υ α α:    ά ε η1 π π υ απ υ , πα υ α φ α αφ χ (Points of Interest - POI). πα υ α α α υπ . πα υ α α α υ Android. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α αχ αφ α υ
    • χ υ α Data storage Web server R1 R3 R2 AP2 AP3 UE1 L1 UE2 ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 D1 D2
    •   χ χ π α α π υ α υφ  Java SDK  Web Services  Android SDK απα  IP Addressing  Linux ά ε η1 α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α
    • α     α  α πα α ( – π ). πα αυ (1/3) π απ α α α 3 α 20-01-2014, 10-02-2014, 10-03-2014 α π πα π υ α χ α ο α υ αφ Θα π π α π α α υ π α α α υ π απο υχ Η α ο ο α α π ου α χ α . ά ε η1 α , αα α α απ α υ α υ οπο α α α π π α π π ω ω α α α ο π ο απ φα ο ο α απ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α α α . αφ α
    • α  α – π α α α α α υ υπ υ α υ  Γα π υ απ π α α α α α . ά ε η1 α πα (2/3) α α α πα α . α υ α αφ . π υ απ α απ α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ α
    • α  2   α – α α α: 11:00-14:00 – 17:00-20:00 – 1 φ  αφ α α α α  Η πα υ α α α ( υ χ 1 απ  3 απ υ ά ε η1 (3/3) = απ α υχ α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α) α eclass α απα α
    • α      α Η α α α :  0.3*1 πα α + 0.2*2 πα α + 0.35*3 πα α + 0.15* υ υ π υχ α π α (α π α, α π) α αυ α α α απ υχ α α. πα α αυ χ απ υ α φ υ α π . Θα απ , α π . υ χ αυ α χ υ π χ υ . Η απ α α α pass/fail. π υχ α α υ υ α α α υ α α . ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 αφ
    • α    α α (1/2) 17/12 π ωΐ:   Introduction, assignment presentation etc Java Programming – Basic classes  JDBC, Swing, π   JDBC, Swing, π α Brainstorming & Questions on Exercise 1  17/12 απ υ α: Java Programming – Inheritance - Threads 07/01: Web Services, SOAP Web Services ( ), J2SE Web Services, πα α 14/01 π ωΐ:  14/01 απ   20/01: Exercise 1 delivery 21/01: Examination of 1st Exercise ά ε η1 α α πα α α πα α υ α: Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
    • α          α α (2/2) 28/01: Android 04/02: Brainstorming & Questions on Exercise 2 10/02: Exercise 2 Delivery 11/02: Examination of 2nd Exercise 18/02: Android 25/02: Android 04/03: Brainstorming & Questions on Exercise 3 10/03: Exercise 3 Delivery 11/03: Examination of 3rd Exercise ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
    • π    α e-class mailing list υ α α  info-k23b[at]di.uoa.gr  αφ MONO @di.uoa.gr email α υ  α    Γ ά ε η1 : π α Χα α α π υ (roiar@di.uoa.gr) (kchatzi@di.uoa.gr) α (kdimtsa@di.uoa.gr) (gbeinas@di.uoa.gr) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
    • 2 υ Χ α α Java αφ π α α α α α παφ , φ α α α α αυ π ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 2
    • Η     α Java (1/2) Η Java απ αυ ππ υ π α α . απ π υ α φ , α α ,α ... απ α α Java α α α. α α α α α υ απ   ά ε η2 α : α .java α α α java compiler α π υ bytecodes. : Java Virtual Machine (JVM) π α α α . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α υ : υ , .java α java α α α .class απ α bytecodes α 3
    • Η   α Java (2/2) Η Java VM:   α π π α απ π π Η Java υ (Java API)) υ π υ .class α . απ υ α π α π . α, π α α απ Java VM, α πα α α (Java Application Programming Interface α π υ πα α φα α . MyClass.java Java API Java Virtual Machine Java Platform Operating System ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 4
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 5
    • π  α α α α      ά ε η2 α φ π υ α αα υ . π α Ό α α ο ο π α  α α υ απ α α α ο υ ο φ υ π α υ φ .  α α π α (inheritance): α α α α υ. α υ ά ω α παφ . α υ α αα υ α : υ υ α υ (polymorphism): Η αφ π απ (encapsulation): Η απ υ α π π α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α π υ υ υ α α απ α 6
    • Java     α α αφ π α α αα α : Η              ά ε η2 public MyClass{} α public απ α MyClass.java α π α α public α /π α: υ : π α α α private/protected α (inner class). π α α α public: π α απ υ . protected: π α απ α package-private: π α απ private: π α απ α static: α α αα α α final: α π α αφ α α : π υφ α α α υπ υ . . , π α α . υ πα υ. υ . . υ α α απ α MyClass myObject = new MyClass(); new  α υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υπ α α . myObject. 7
    • α α Η    Η α α α α Constructors:     α υ numberOfBicycles? this? υ φ <Access Modifier> class <Class Name> { // field, constructor, and // method declarations }   υ static π α α Η π π υ α α α π υ α υ α αφ π υ υ υ α α α . α υ υ υ α α υ. αυ π υ υ α α α φ υ α υ . α α, α α π υ constructors α α , α πα α . α α, Java α πα default no-argument constructor. α α  Η   α α απ α α . Method overloading υ α υ φ : <Access Modifier> <field type> <field name> α α υ φ <Access Modifier> <return type> <method name> (<argument list>) <exception list>{ //body } ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 8
    • υπ υ     Η Java VM . Η Bicycle π αυ απ π α . Γα υ α α      απ π α α αυ , Ω α α Φ υ π υ π υ . ά ε η2   α υ π + υ α π απ α φα απ ω α α ε ω α Α χ οπο ή ω α α α α ? System.out.println()? φα ε π α απ π α : objectName.fieldName π απ π α α π υ ...Bicycle αυ αυ ( απ υ υ ,α main. Γ απ α α π main α υ constructor ( α: new) ) υ α α public π α private π α : α α α υ υ α objectName.fieldGetter() / objectName.fieldSetter() α Η Java α α απ απ π . υ π π α υ φα α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ. υ αα α υ α , απ π α . Java runtime environment αα α π α α garbage collection. 9 α
    • public static void main(String[] args)  Η main π α         ά ε η2 α α . απα public: static: void: π φ String[] args: α υ . α φα α υ π α . α α α πα α α αα αυ α α α π α α απ α απ α υ Integer.parseInt() Double.parseDouble() Γα π α java.lang πα Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α . . υ υ Java API 10
    • static  Ω static π   static π     υ π α α υ α α α π απ υα υ α αα α α α π αα π α αφ α α π υ π α α . π α α π υ α α αα Ηπ π α static π υ α υ α π υα υ: <class name>.<static field name>. . α α. α static       ά ε η2 α π π α π υα απ π υ υ α static π α α αα α α . π . π Η α π H main α α α static π υα υ static α υ . υ υ α υ: <class name>.<static method name>. α α αφ α this & super keywords. α static α α π α α π α α υ α π υα Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 απ υ. π 11
    • this  Η α υ this α αφ α  this.<field name>  α this.<constructor>    ά ε η2 α π υ υ(  α , constructor) απ π υ α α απ α constructor α α π υ α α α obj.itIsMe(this); Γα α π υ α MyClass getInstance() {return this;} Γα α π  απ constructor π α α (explicit constructor invocation). Γα α   π π α πα α π υ α α α υ υ υ α Class className = this.getClass(); Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 12
    • π   α Η Java υπ         8 primitive data types byte: 8-bit α α short: 16-bit α α int: 32-bit α α long: 64-bit α α float: 32-bit α double: 64-bit α char: 16-bit α α α (υπ boolean: (true/false) Η Java πα    ά ε η2 α α α  =  +, -, *. /, %  α α ++, --, ! υ υ Unicode) α        α α υ == , != , >, >=, <,<= α υ &&, || πoυ objectName instanceof MyClass υ α α object α υ υ π υ( π φ true/false) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 13
    • υ      Η Java  α πα α υ: If-then-else, switch, for, while, break, continue, return; if (condition) { … } / if (condition) { … } else { … }  !! condition υ απ C, α α α α α π υ boolean α πα α α 0 α υ true false. if α απ α αυ α π υ α α , switch (expression){ case value1: …; break; …. default: …; }  expression π α α α α , String enumerated type while(condition){}   υ α while(true){…} υ α infinite loop χ while(1){…} πως χ ε ην C for(initialization; termination; increment){}  ά ε η2 π π π υ α υ arrays Collections, α α υ int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item : numbers) { System.out.println("Count is: " + item); } Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ α α υ for loop 14
    • α        π α α α απ α Ηα Η α    αα υ π α π α α π υ αφ α υ α α π π υ α υ π υ [] α απ υ α 0. υ υ int[] myArray π α α α new π α α α υ int[] myArray = new int[10] α α int[] myArray= {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000} α   ά ε η2 (1/2) π π π π α α π α π υ π α απ υ primitive types υπ α α α α Java, υ . π α α απ π α MyObject[] myArray = new MyObject[10]; myArray[0] = new MyObject(); Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 15
    • α  π (2/2) υ α π α 2π α α π α Java αφ υ απ υ α υ C.     απ  Η υ απ  ά ε η2 Java α π α π υφ υ α α . α φ π α α names π α α newNames. String[][] newNames = names; α (references).    α  α String[][] names = {{Οεr.Π, Οεrs.Π, Οεs.Π}, {ΟSmithΠ, ΟJonesΠ}}; names[0][0] = Οεr.Π; Η πα α   . α απ names, arraycopy α π α α α υ newNames System α α . π π αα υ System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) !Η αυ deep-copy α υ α α α α α απ α υ π υ υπ α α α υ α Collections. α π α α α απ built-in property length. myArray.length, names[0].length Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 16
    • α ά ε η2 α υπ α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π α α α ? System.gc()? 17
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 18
    • Number    H Java α Number π α αυ value αα π π π υ α α primitive:     . π α α α υπ primitive type. υ wrap α π α primitive data Number object α α α υ π υπ υ π object Γα α π υ maximum α minimum values π Integer.MAX_VALUE, Integer.MIN_VALUE. Γα α π υ απ α π string ( υ υ π υ απ ά ε η2 α α α α data types atoi()!!) α υ : java.lang.Math Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 19
    • String      H Java α πα υ α α υ α String α    Η α Χ        ά ε η2 String α. α α String greeting = ΟHello world!Π; String greeting = new String(ΟHello world!Π); .. α α 11 constructor α α υ String υ α α immutable, αυ υ π ... αα α α αα π . α π υ String α String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); String name = "εy name is Ο.concat("Rumplestiltskin"); υ string π υ α υ α +( υ υ α πα α System.out.println) char character = ΟhelloΠ.charAt(0); ΟhelloΠ.equals(Οhello Π); α π α string α α Number α String String to Number  <NumberSubclass>.parseXXXX π Float.parsefFoat(myString) Number to String  String str = 1+ΠΠ; String str = String.valueOf(1); String str = Integer.toString(1) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 20
    • Java.lang.System     α α Χ        ά ε η2 υπ α α π υ α α α πα Java API απ static υ π υ αφ α α α π System. α. α in:"standard" input stream out:"standard" output stream err :"standard" error output stream. currentTimeMillis(): π φ α υ π α π υ π α α απ 1/1/1970. gc(): α π garbage collector. exit(int code): α υπ α α π φ α α run time π . arraycopy(Object src, int srcPos, Object dest, int destPos, int length): α αφ π . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α 21
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 22
    • α  Java υ α α π α α α π . SuperClass/ParentClass/BaseClass απ α α extends SubClass/ChildClass/ExtendedClass      H Object (java.lang.Object) α super class . α π α Α . π υυ π α π α α υπ Object. π α α α π υπ α απ υ ππ α α α α α υ α. extends: SubClass extends SuperClass ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 , υ α α 23
    • α ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 24
    • Χα α           α α υπ φ υ constructors α π υπ π υπ π π υπ π α α ), α , π απ α α π α υπ direct access α α απ α π . α υ ππ π α α υπ π υ α . α α υπ υ π α α απ α υ α π υ υπ (hiding) . α υ α υπ α απ αυ υπ π υ . φα α . α υ υ υπ (method overriding). π α α super. π α υ α static υπ static υπ α α απ constructor α υπ π α α α super. ά ε η2 (π α, υ , α public α protected . α π α υπ . α π π π Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υπ υ αυ αφ αυ υπ α υπ αφ υ (hiding). constructor υπ α 25
    • α α π α υπ υα α α π α α α α ? αφ ? Method hiding Method overriding Η Η The class method in Animal. The instance method in Cat. The instance method in Dog. ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 26
    • super    π υ π Χ π super π υ α π υ υ override, α α υ α α constructor. Class ParentClass { void methodA() {…} } Class ChildClass extends ParentCLass { void methodA(){ super.methodA(); ….} } Χ     ά ε η2 super α constructors Η super(<argument list>); α π απ . π α α απ π α α α super. To run time π α α non-argument constructor (default constructor). π αα υ constructors απ πα αφ υ υ Object constructor (constructor chaining). α α α α α απ Object π α . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 27
    • Type casting   α Ω type casting α α π    α πα υ α π π υ α . υ απ . Type casting reference υ υ π υα υ. Upcasting: α υ αα α Child α reference π υ Parent, π υ Child extends Parent. π π αυ , π α α υ ππ υ α π απ υ α Child α Parent. π α α υ overridden methods Child!! Downcasting: α υ αα Parent α reference π υ Child. αυ π π α α υπ compile-time error α α α α. Η α Parent obj = new Child(); Child child = (Child) obj; ά ε η2 α υ Parent obj = new Child(); if(obj instanceof Child) Child child = (Child) obj Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
    • Object    α Η π απ αυ    ά ε η2 π υ Java. αυ π α α απ α: equals(): π α υ . α π φ υφ υ π α φ π υ α α α α αα υ override α . α Object π υ α α α π false α αα υ α α α υ α α override αυ π α α α α α α υ α α α. getClass(): α α runtime representation α α αα α υ π φ π . myObject.getClass().getName() toString(): α πα α string α α απα υ υ override α α πα υ υ π α α π . α true Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ π α α ( α υ ). π υα object. α π α. α αυ , α
    • toString() α α υπ υ π φ α υ Constructors α private π getters α setters α α equals() α α υ υ υ α α Is std1 equal with std2: false Student id: 123 Student name: Maria Student surname: Papadopoulou Student id: 456 Student name: Dimitris Student surname: Nikolaou
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 31
    • παφ         π (Interfaces) π υ υ α υ φ υ α α α α π α π α α α α υ υ π ! α interfaces α πα υ αυ υ α α. Java α interface απ α reference type, πα α , α π α (static & final α ) α . υ π α Α Α . π α υ υ α α απ interfaces. Έ α interface π α implement απ α extend απ α interface. α π α implement πα απ απ α interfaces ( α α, π υ π α extend α ). Ό α υ implement α interface, π π α υ α α υ π υ α. : interface, implements ά ε η2 υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 32
    • υ implements extends ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 33
    • φ  π (Abstract) υ υ π α ). π abstract υ (π υ public abstract class MyAbstractClass { // declare fields // declare non-abstract methods abstract void abstractMethod();     } α abstract π α extend α αυ π υ . α interfaces, abstract classes π υ π α non static α final, α πα υ υ π α π απ υ υ . π υ υπ υ α α α αφ υ π α α π υ extend υ α α υ π υ . α abstract π υπ abstract υ α α α interface. ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 34
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 35
    • α       α (Packages) package υ α π υ αφ α interfaces α α . Java API πα α α π πα α (java.lang, java.util...) α α απ πα  υ φ α α π .  Modularity..  υπ υ Δ υ Ε α α , α package υ namespace.  π π υ α απ α α package α π υ π α απ αυ . :package α α α :  α package α  α π υ α α package α φ υ α υ Internet domain υ π. package gr.uoa.di υ α α αφ α α π υ πα υ φ υ import gr.uoa.di.* ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 36
    •    α (Scope) Η Java α πα α απ access modifiers υ α απ υ α α α α π / α α . Η α πα π α α . α        ά ε η2 α ,α υπ private) απ π α α απ υ π α (Φ public α πα π υ modifier, α α α υπ α. αυ υ α απ default (packageπα . υ α αυ private: package-private: α πα υ π α π protected:π α αυ πα α π υ public: ,α α αυ . π α α α) α α . υ π α , (α υ π πα Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ, π π υα αυ . υ π υα υ πα υ) α π 37
    •   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 38
    • π  υ  αφ , α πα α        ά ε η2 α α α: Java Development Kit (JDK): http://www.oracle.com/technetwork/java/javase/downloads Έ α φ α IDE:  Notepad, Textpad, WordPad  Eclipse, Netbeans α  JAVA_HOME: C:jdk1.7.0_21bin  PATH: C:jdk1.7.0_21bin  CLASSPATH: C:jdk1.7.0_21jrelib α π α υ CLASSPATH π α α . α α απ α javac Νcp path_to_libraries;path_to_classes Νsourcepath path_to_sources java Νcp path_to_libraries;path_to_classes MainClass arg1 arg2 … argn π Linux α α α α :α α; Windows. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 39
    • α      α α javac.exe srcgruoaPrinterClass.java -d classes javac.exe -cp classes srcgruoadiFirstClass.java -d classes  java -cp classes/ gr.uoa.di.FirstClass "Hello World"  Hello World π ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 40
    • Αναφο έ  Javadoc  Oracle tutorial   ά ε η2 http://download.oracle.com/javase/7/docs/api/ http://docs.oracle.com/javase/tutorial/index.html Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 41
    • 3 Ν α α (Threads) η Java Συγχ ό ω γα Collections & Generics αχ η φα ω η Java ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
    •    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 2
    • α     α υπ α α α φα απ υ υ α απ α (concurrent programming). υ υ α (processes) α α α α (threads). α       ά ε η3 π α α αφ απ αυ φα Δα α α υ π υ α υ υ α υπ πα π α (Inter Process Communication- PC resources) υπ (π pipes, socketsΖ). αΕ α CPU , α υ memory space. α π α α α α π α α α α lightweight processes. α υ α αυ α π υ υ α thread απα υ π υ α υ απ υ α. α α α α α α α α. υ α, α α α π α υ α π α α α α π tasks Δ αυ αΕ. α α α α π υ α α π υ α υ π ,α α π α α υ α υ address space. α α π π α CPU α threads α α (context switching) α . Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 3
    •   α α α H Java α πα   α α Java (1/2) υ υ υ π υ extend implement α υ α Thread (java.lang.Thread) Runnable interface (java.lang.Runnable) Extends Thread    ά ε η3 α π α extend π α α α α implement Runnable Interface) O constructor αυ π super(). α απ αα π Τ Thread α α thread. ( α α α start() π υ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 override υ π constructor α run() Thread Thread Thread α υ α thread. 4
    •  α α α Java (2/2) Implements Runnable    α π α implement interface Runnable α α αφ run() π υ α thread. Α , αα π υ Thread υ α α υπ α constructor υ α α απ π υ υ α α implement Runnable. start() υ α υ π υ Thread α α α π φ thread υ α α implement ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α threads π υ υ Runnable interface α α Thread Class: 1. Α oυ extend Thread, π α υ extend α α 2. To Runnable interface α υπα α υ implement α ( run) α απ φ υ α 5 υ extra overhead Thread.
    • thread      Start: α α α π α υ αα π υ Thread α π α υ start() Runnable (Ready-to-run): α π υ α α start() α απ thread. αυ α α π π α CPU. Α , αυ α α π α απ υ απ non-runnable α running Running: αυ α α thread α. scheduler π α απ runnable pool. Dead: thread αυ α α πα α α α join απ α απ υ . Non-runnable state: • K static: void sleep(long millisecond) throws InterruptedException • notification απ thread: final void wait() throws InterruptedException • To thread π α I/O π υ • α υ thread α α α (joint completion) • α lock π π . ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 6
    • Static α α π υ υπ υ thread π υ α υ απ υ α πα υ run thread To α π π π υ interrupt απ π thread thread H main απ α α απ α thread α π α α threadMessage ά ε η4 υ t α α π υ Thread α πα thread π υ α
    •    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 8
    • υ  α αα υ threads α α υ π α π α α. α π υ π α α α απ αυ start() thread1 thread2 Shared object  Java π  π ά ε η3 α πα α π α υ. π π π α π α deadlocks α starvation. Τ υ ,α α απ υ α α απ φυ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ υ α α 9
    • υ α υ synchronized υ φ α α α π α synchronized υα π α π α π α υπ π synchronized υ α υ synchronized α α intrinsic lock π υ α α υ π ά ε η3 Τ π α απα α υ α π υ π αΠ η φ α Τη επ α ω Α άπ υ η Λ γ αά2η 2013-2014 α α Χε ε π υ α α π φα α π α α α α α π α π υ, υ . πα α α π t υ υ α απ υ α απ υ. απ αυ starvation, α α α synchronized BLOCKED α . α π α υ. α α
    • υ α block π π statements π π π α π Fine-grained υ α α π υ α α υ ά ε η3 Τ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 . π α α π α synchronized υ π υ lock . α υ 11
    • υ α α α π ά ε η4 Τ απ αφ υ αυ α αΠ η φ α Τη επ ω ω Α άπ υ η Λ γ Χε ε ά η 2ί12-2013 απ π π π α απ υ υ 12
    • Α   (Atomic execution) Α π α επ υχώ  π Α απ    α α απ υ α    α   α α α α α π π υ ( π ά ε η3 υ π α ο ό . α π υ α ό ου. α α α α α α α υ ). α: double d; d++; Retrieve the current value of d. Increment the retrieved value by 1. Store the incremented value back in d. α αυ πα α π Γ α primitive variables ( α . Γα α π υ long, double). α α π υ υ α α α. α volatile  (Atomic action) ε α. α α : long, double) α references, α volatile (π volatile variables α Τ α φα αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π )( read/write υ π α α α α α υ υ !!! 13
    •    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 14
    • α     Java π α πα φα α α α απ π . Ό , υπ υ π π π υ υ α υ α φα π υ α α υ απ υ α . απ υα υ α α υ α α α α α φα φ α π υ α platform dependent . Runtime απ α παφ π π υ φα α    α π υ ά ε η3 getRuntime(): α π φ αα π υ Runtime exec(String[] cmdAndΑrgs): υ α α απ υ π υ π α α Process p = Runtime.getRuntime().exec("/bin/ls"); α α α φα πα α υ !! java α α α υ α stdin, stdout, stderr. Γ α α π υ α απ π α π υ υ getInputStream(), getOutputStream() α getErrorStream() α πα α π υ Process. Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 15
    • α α α π απ α υ ά ε η3 Τ π α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 ls π υ /bin α getInputStream α πα α output stream α α πα . α α αυ input stream α main υ υ buffered α - input stream α α α α !! 16
    •    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 17
    • Collections   Ω Collections α α απ υ α α. α Collections α πα α α απ υ α α α Έ α collection framework π α :     ά ε η3 π ππ αα αα α α framework α αυ . Interfaces: παφ α α /π π α υ collections π υ α υ αφ π υ π Κ ά ε :π α υ υ π Interfaces. υ α φα α . Α γο ί ου : α π α α , α α υ π α αφ π αφ α αυ α π υ φ α α α αφ α α collection interface. απ α α α collection framework:    α υ Έ α Data structures α API α α π υ ,α Τ α π απ α . α α απ φα α απ π α υ π αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α π υ π α π 18
    • Collection interfaces  αφ αφ        ά ε η3 collection interfaces υ π υ απ υ α Collection: α .Χ π Set: α υ List: υ α π π υ Queue: collection Map: collection π SortedSet: α . SortedMap: α α α. α α α υ α α π α απ α υ αα π υ υα φα π α α α α . α collections α υ π α απ π α collections π α υπ υ π υπα α α π υ φα υ α . π π υ index. υ . α α . Set, π υ α αα Map, α Τ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π α υ π α π . α. α α α 19
    • Collection implementation  υ         Collection interfaces π υ α υ υπ α α πα α αφ : General-purpose implementations αυ α α υ π υ π α collections. Special-purpose implementations α π φα α α α αυ π υ πα υ υ π φ απ υ π φ . Concurrent implementations υ π π υ πα α α φα αυ π π α α αυ α α απ π υ α π α (java.util.concurrent package). Wrapper implementations π α υ υα general-purpose υ π α α πα υ ππ υ α. Convenience implementations collections π υ α α α static υ π φ (π singleton sets). Abstract implementations πα υ abstract α custom υ π απ .   π π υ . υ ά ε η3 υ α α general-purpose implementations α Set  HashSet, TreeSet, LinkedHashSet List  ArrayList, LinkedList Map  HashMap, TreeMap, LinkedHashMap Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α απ α υπ πα υ π π υ υ υ φ interface. Δε α thread-safe. υ iterators α π π α . α Serializable α υ clone(). 20
    • π    π α α υ    υ , α α απ π α Collection α απ π υ π α α π υ π π απ collection , Iterator. υ for-each α π π απ collection ( π υ υ π α α array). π α for (Object o : collection) System.out.println(o); υ α α interface π υ α collection α Collection υ π υ Iterator. π Τ α α α υ α iterator() α public interface Iterator<E> { boolean hasNext(); E next(); void remove(); //optional } ά ε η3 α απ υ : υ for-each Iterator π π  α π υ α α φ α υ. αα static void filter(Collection<?> c) { for (Iterator<?> it = c.iterator(); it.hasNext(); ) if (!cond(it.next())) it.remove(); } αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 21
    • Ά  α  ... Bulk operations     α α α   υ containsAll(): υ. addAll(): Δ υ removeAll(): ( αφ υ retainAll(): α Clear(): α υ α α collection π α α Ε υ collections. α α απ α collection π υ ). φ α α α απ removeAll. α collection απ α α υ. α φα α α size()  α π φ π π υ α collection toArray()  π υ α π α α απ α π α π α α υ α α collection Collection<String> c Object[] a = c.toArray(); α String[] a = (String[]) c.toArray(new String[c.size()]); ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 22
    • Generics    Χα α π υ φα Java SE 5. α πα Οtype-safety at compile timeΠ α α υ π α α απ φ υ υ α ΟClassCastExceptionΠ α α generics α α υ α Collections. List myIntList = new LinkedList(); myIntList.add(new Integer(0)); Integer x = (Integer) myIntList.iterator().next();   υ  α generics α α ArrayList. type casting α α  α generics α α α ά ε η3 α πα π υ φ . Τ List<Integer> myIntList = new LinkedList<Integer>(); myIntList.add(new Integer(0)); Integer x = myIntList.iterator().next(); πα compiler generics (Type Erasure) α υ α α α α πα α ArrayList<String>  α υ raw types, α . α. α υ π α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 23
    • πα α Generics α α α απ Set setOfRawType = new HashSet<String>(); setOfRawType = new HashSet<Integer>(); Set<Object> setOfAnyType = new HashSet<Object>(); setOfAnyType.add("abc"); setOfAnyType.add(new Float(3.0f)); Set<?> setOfUnknownType = new LinkedHashSet<String>(); setOfUnknownType = new LinkedHashSet<Integer>(); Set<String> setOfString = new HashSet<String>(); setOfString = new LinkedHashSet<String>(); Set<Object> SetOfObject = new HashSet<String>(); //compiler error ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 24
    •    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 25
    • Σφ  α φ π       αα   ά ε η3 α α (Bugs) α α Α η Java (1/2) α π υπ π α α α αυ , π α C: perror υπ Java: Χ πα α π υ π α α υ π α φ απ υ υ . α (exceptions). (checked) α α Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α πα π : α υ , (unchecked). 26
    • Σφ αα η Java (2/2)  α π α α υ φ α π α υ π υ α , αυ υ αα (exception object) α πα α runtime system ( throw α exception).  Έ α exception α π π φ α υ φ α π υ υ , α α υπ α α υ exception .α...  To runtime system α π handler απ π α α π υ α α αυ φ α( catch exception). α α α απ υ α υ π υ υ φ α α φ main. method3() Throws exception Forwards exception method2() Catch exception Call stack trace method1() main() ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 27
    • Κα ηγ    Java   υ exceptions. υπ java.lang.Throwable υ exceptional conditions π υ α φα απ π α π α ΟCatch or Specify RequirementΠ, α α π α α handlers α α α catch α α π υ α. Ό α α exceptions α checked, απ π υ α υ RunTimeException α α υπ υ recover. α α απ π α π α Error, Error:     α πα Checked exceptions:   Ό α exceptions υ exceptional conditions π υ φ α α φα υ π απ α α α hardware. υπ α ΟCatch or Specify RequirementΠ α stack trace π υ υ exception α α . απ α πα υ π π α π α α φα recover. α α υπ α α α Runtime exceptions/Unchecked exceptions:    ά ε η3 υ exceptional conditions π υ φ α π φ exception αυ α α α υπ α ΟCatch or Specify RequirementΠ α α RunTimeException Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υπ α α . NullPointerException!! υ 28
    • Exception handler  Java α πα α finally blocks handler. α exception handler components. α try, catch, α π π υ α υ α exception try { code } catch (ExceptionType name) { System.err.println(.....); .... } catch (ExceptionType name) { System.err.println(.....); .... } finally { ..... } ά ε η3 υ α α π /α ΟExceptionTypeΠ, υ header υ Ζ throw ExceptionType Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υπ α φα try block υπ υ π α α α throw α exception. catch block α exception handler, α α π exception. υ υπ υ α υ απ . finally block α π α, υ exception . υ φ υ Σ αυ clean up α. 29
    • α α φ φ α α α α α α α. α α α2π α α . Γα α υ π α ; Χ 2 α exceptions α α α υ π π απ α υα υ α φ α αφ . ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 30
    • απ φα α . 1. Α α α π α π α . α φ ά ε η3 α α α απ α 38. φ π 2. Α α α α α exception α α α 3. Α 53! φα π υ stack trace π υ α exception π π υπ α α α α α : π ώ π υ α (απ π π α ). υ α υ α . αυ π α. α π α υ . . 58! Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 31
    • Απ - φα         ά ε η3 α α exceptions π π υ α   υπ φ α. Ν ΝΑ φ υ α υ printStackTrace(); α α Α Η α φα α π π ( απ Α Τ απ α φα α Exceptions π α υ Η: α απ υ απ υ α π υ α α α α Exception). α throws υ α . φ α α α main. α πα exceptions: exception handling απ α exception υ α call stack, απ throws. α π α exceptions πα α α (π α exceptions FileNotFoundException α InterruptedIOException π αα α α α απ IOException) Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 32
    • 4 Web Services α XML ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 1
    • Περ εχό ε α  XML  Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 2
    • XML ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 3
    • α XML  Η XML (eXtensible Markup Language) α α markup metaα (υπ SGML) π υ π α απ αφ , α απα α α α α α .  α α παφ π α α α α α α φα αφ υ α . φα π α XML Parser α α α α υ α α υ XML φ υ. ππ    ά ε η4 α α : π α απ built-in data validation υπ Unicode Τ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 4
    • Έ α xml α <Employee_Info> <Employee Employee_σumber=Ο1Π> <Name> George Kakavoulis</Name> <Department> HR Dept </Department> <Telephone> (+30) 210 - 3453432</Telephone> <Email> g.kakavoulis@some_company.com</Email> </Employee> <Employee Employee_σumber=Ο2Π> <Name> Maria Kokkinou</Name> <Department> Logistics Dept </Department> <Telephone> (+30) 210 - 3453458</Telephone> <Email> m.kokkinou@some_company.com</Email> </Employee> . . . </Employee_Info> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 5
    • α φ υ xml  Elements: tags <aTag>, <aTag/> π υ π α π υ data. Απ α απ "start tag," "content tag," α "end tagΠ, π. . Element χω  Attributes: π υ π π. . <aTag id=“123”> content: <element_name/> (χω start α end tag) φ α α elements, α elements π α υ attributes, content α α child elements. content: predefined entity references α υ υ α α : [<  &lt;] [>  &gt;] .α. ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 6
    • XML Schema H XML Schema α α schema definition απ υπ απ α W3C π απ φ υ. Κα α αυ π α α α  Έ α .xsd αφ απ α απ elements α attributes. Π     . XML α α: α XML α Object-oriented π υ π (built-in, απ ) π Namespaces Έ α element υ π υ π child elements α attributes, απ π υ π απ ά ε η4 απ α element text. Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 7
    • employee.xsd XML Schema πα α <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="Employee_Info" type="EmployeeInfoType" /> <xs:complexType name="EmployeeInfoType"> <xs:sequence> <xs:element ref="Employee" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:element name="Employee" type="EmployeeType" /> <xs:complexType name="EmployeeType"> <xs:sequence > <xs:element ref="Name" /> <xs:element ref="Department" /> <xs:element ref="Telephone" /> <xs:element ref="Email" /> </xs:sequence> <xs:attribute name="Employee_Number" type="xs:int" use="required"/> </xs:complexType> <xs:element name="Name" type="xs:string" /> <xs:element name="Department" type="xs:string" /> <xs:element name="Telephone" type="xs:string" /> <xs:element name="Email" type="xs:string" /> </xs:schema> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 8
    • XML Schema Complex Type Elements: Simple Type Elements: Attributes: Reference Elements: ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 9
    • XML Schema Γ ο built-in πο ο π (1/2) ω : ππ : π α α απα α DTD-compatible, .α. ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί12-2013 ,
    • π XML Schema Ο απ πω απ ο χ : (2/2) Ο ω πω απ ο χ : <xs:simpleType name="belongType"> <xs:restriction base="xs:string"> <xs:enumeration value="Sales"/> <xs:enumeration value="Development"/> <xs:enumeration value="Service"/> </xs:restriction> </xs:simpleType> Απ π χ απ Α user-defined π υ element : <xs:element name=“Emp" type=“EmpType"/> Μ χ extension υ α α ά ε η4 α απ π π attribute Τ υ α ω ω .xs ω α χ υ: <xs:include schemaLocation=“EmpType.xs”> αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 11
    • XML Schema Namespaces (1/2)    Αφ απ α (abstract containers) π υπ υ α α xs elements α attributes α α α α υ α . Χ π α prefix α α α elements/ attributes, π π α elements/ attributes απ π α υ Namespaces conflicts α α. Χα α α απ α α α, υ URI. <emp:employee xmlns:emp="urn:corp:emp"> <emp:personInfo> … other emp:tags … </emp:personInfo> </emp:employee> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 12
    • XML Schema Namespaces (2/2) <employeeList xmlns="urn:corp:list" xmlns:emp="urn:corp:emp" xmlns:sec="urn:corp:sec"> <personList> <emp:empID>AB272654</emp:empID> <sec:name sec:ID=ΟAB121Π>Sales</sec:name> <emp:name>John Smith</emp:name> </list:personList> <personList> <emp:empID>E231290</emp:empID> <sec:name sec:ID=ΟAB125Π>Development</sec:name> <emp:name>Ichiro Tanaka</emp:name> </list:personList> … </list:employeeList> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 Default Namespace (χω prefix) υπ πω Namespaces Attribute Namespace 13
    • .xml .xs  Ω α root element : υ .xml α π : <Employee_Info xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:noNamespaceSchemaLocation="employee.xs">  α : <?xml version="1.0"?> <class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" root element xsi:noNamespaceSchemaLocation="#mySchema"> <xs:schema id="mySchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="class" type="xs:any"/> xs tags <xs:element name="student" type="xs:string"/> </xs:schema> <student>Miltos Karras</student> <student>John Smith</student> </class> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 14
    • XML Binding (JAXB) Η Java™Α χ ο γα XML Binding (JAXB) πα α π XML schemas Java α απα α α XML data φα Java. Η JAXB πα υ α αυ α πα α (unmarshal) Java content trees απ XML instance αφα α α φα (marshal). Η JAXB χ π α υ υα Java API for XML (JAX-WS) α υ α Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 15
    • Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 16
    • α  α Web Services α α α α α α α υπ υ α α( π : CORBA, RMI, EJB, .α.) αφ υπ request/response.  α α υ α software components π υ πα υ απ α π α α υ α φα αφ , α π standard XML .  Γα υ α Web Services π υ HTTP.  α α:   ά ε η4 α υ α, XML υ α α fixed port 80 π υ α firewalls π Τ firewalls, π υ απ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 Http ( ) 17
    • Publish, find, bind paradigm ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 18
    • …απ α π Η υ υ services Web URI: α π. . http://webservices.mysite.com/ weather/us/WeatherService π ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 WS π α α ( υ α α απ π υ ) 19
    • υπ Web Service α SOAP reqs-responses UDDI (WSDL) ά ε η4 WSDL (UDDI) Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 20
    • Web Services Network Stack UDDI (Universal Description Discovery Integration) πα α Services, α α υ υ clients α α α α υ α WS π υ WS π αφ υ WS (WSDL) α υ UDDI. client π UDDI α α ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α π i απ Web υ . αα α α WS. 21
    • WSDL   Η Web Service Description Language (WSDL) α α W3C standard XML-based απ υπ π φ α interface, α α α υ α Web service. Η WSDL α Web services α α υ απ ports α operations (abstract interface). α π αφ α π αφ υ α π φ π υ υ Web service. Αφ υ α Web service, π αφ υ α α π αυ UDDI. Γα α χ π π WS WSDL α χ υ α π α υ WS, υ α π α π π . υ χ αχ π π φ αυ α α υ α SOAP α απ . ά ε η4 Τ υ WSDL <definitions>: Root element <types>: <message>: π υ α α α ; α α α α α ; υ <portType>: <binding>: specific π α <service>: π α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α υπ π ( υ ; α ) υπ α α α; α α; SOAP- WS; 22
    • Element Defines <types> The data types used by the web service <message> The messages used by the web service WSDL - <portType> The operations performed by the web service <binding> The communication protocols used by the web service <definitions> <service> The name and location of the web Service <types> definition of types........ </types> <message> definition of a message.... </message> <portType> definition of a port....... </portType> <binding> definition of a binding.... </binding> </definitions> <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> http://www.w3schools.com/wsdl/default.asp ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 23
    • WSDL Ports One-way Request-Response <message name="newTermValues"> <part name="term" type="xs:string"/> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="setTerm"> <input name="newTerm" message="newTermValues"/> </operation> </portType > <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> Type Definition One-way The operation can receive a message but will not return a response Request-response The operation can receive a request and will return a response ά ε η7 Solicit-response Τ αΠ η φ α Τη επ ω ω The operation can send a request and will wait for a response Notification The operation can send a message but will not wait for a response Α άπ υ η Λ γ Χε ε ά η 2ί1ί-2011
    • WSDL Binding    binding element   name attribute: defines the name of the binding type attribute: points to the port for the binding soap:binding element   style attribute: can be "rpc" or "documentΠ transport attribute: defines the SOAP protocol to use operation element   a SOAP action for each operation definition of the encoding for the input and output <binding type="glossaryTerms" name="b1"> <soap:binding style="documentΠ transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation> </binding> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
    • WSDL Ν α α (1/3) namespace υ web service complex types π υ α π απ wsdl Έ ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α
    • WSDL Ν α α (2/3) Namespaces π υ α π Request α π XML Schema α WSDL Response π ά ε ηι ά ε η8 6 φ α υ, 27 π υ
    • WSDL Ν α α (3/3) π soap υ α π SOAP π α WSDL. α υ web service α π υ α ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
    • SOAP  Simple Object Access Protocol (SOAP) α π α απ υ α υ π α α α π . π α α α α φ υπ ( υ HTTP). SOAP απ α π π α π π αα υ α α αφ υ π α α data.  α W3C standard XML-based απ α υ υ SOAP α α π αφ α π υ π αφ SOAP Schema namespace <SOAP-ENV: Envelope SOAP encodings xmlns: SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV: encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> π – φ α Header α π χ υ processing nodes (π.χ. authentication or authorization server π φ α χ body .α.) </SOAP-ENV:Header> Get Last Trade Price for symbol DEF ά <!-- Request --> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="some-URI"> <symbol>DEF</Symbol> </m: GetLastTradePrice> ε η6 Τ </SOAP-ENV:Body> </SOAP-Envelope> <!-- Response --> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="some-URI"> <price>22.50</price> </m: GetLastTradePriceResponse> α Τη επ ω ω </SOAP-ENV:Body> ηΛ γ αΠ η φ Α άπ υ Χε ε ά η 2ί11-2012 Respond with price 22.50 29
    • Stubs α WS υ α client α α ά ε η4 φα , α α αφ φα απ α α Τ α SOAP π α α αυ α α. Ό α π α Web Service, α α software π υ α stub. αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α 31 α
    • Έ α Web Service π ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 32
    • AddNumbers.wsdl α αυ π WS (1/4) Web application code: 1.1. υ α WDSL Server-side ά ε η6 Τ αΠ η φ α Τη επ ω ω Α άπ υ η Λ γ Χε ε ά η 2ί11-2012 α WS
    • AddNumbers.wsdl α αυ π WS (2/4) 1.2. υ α WDSL Server-side ά ε η6 ά ε η8 6 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α WS
    • AddNumbersImpl.java α αυ π WS (3/4) 2.Αυ α πα α WS α απ WSDL (π. . Axis with ADB (Axis Databinding)) Server-side ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
    • AddNumbersCall.java α αυ π WS (4/4) 3. υ α client code Client-side ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
    • Quick ΣnΣ Dirty (1/3)  Η Java απ 6 (javax.xml.ws.Endpoint)  Αυ α π α α α  Server Side: ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 Endpoint WebService
    • Quick ΣnΣ Dirty (2/3)       : main Endpoint.publish("http://127.0.0.1:8081/ChannelSelection", new WebChannelSelectionInterface()); Η ndpoint υ αα WebChannelSelectionInterface α πα απ URL α υ WSDL:  http://127.0.0.1:8081/ChannelSelection/?wsdl XSD:  http://127.0.0.1:8081/ChannelSelection/?xsd=1 α πα α υ ά ε η4 α WSDL α XSD α π υ αυ α α o client. Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 π υ α
    • Quick ΣnΣ Dirty (3/3)     α project: ew  Web Service Client υ α wsdl α α π α α  Invocation: ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 υ client
    • Web Services α 2 ..... Θα  WSDL  π α α : XSD  SOAP  XML Web Services Learning Trail http://netbeans.org/kb/trails/web.html http://netbeans.org/kb/docs/websvc/jax-ws.html ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 40
    • 5 Java DataBase Connectivity 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 1
    • α   α   π π α α π α παφ Τ 5 π αΠ Χ -Κ φ π υ α Τ π 2013-2014 ω 2
    •  α π  Κ π  π φ π  Χα α    5 α π υπ απ υπ . π α π α α υ α α π α υ . π απ π α υ απ απ α α α αα Τ αΠ Χ φ π υ α Τ υ π 2013-2014 υ υπ ω 3
    •  α α     α απ α π υπ  α υ απ α α α α αφ α α 1. α: α π α α  α α  π α υ π α α α α α α υ υ α α π υ α απα υ π α π α. απ υ π α υ υ π α απ  Oracle, MySQL, Access  Excel 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 4
    • α α :Έ απ Ε) (Δ π Φο α ώ έ υ Ό α Πα α 1 Κ α α α αφ π α α. :Έ απ α ο α αφ . π υ π υ α Φ α α 1 Μα 1 α α ω Ό α Π α ω ω 1 ω 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 αφ ω α υ ω α α 5
    •     π α απ  α α α α υ 1; α α α α       5 α φ αφ φ φ π π υ φ π φ αυ α α α ; π υ α πα απ α απ απ υ υπ Τ αΠ Χ α φ π υ υ 1 απ φ υ α α α Τ π 2013-2014 ω α 6
    • π  α απ υ π π α π π α , π α παφ π υ π α υ υ α α υπ π α / π φα π 5 Τ αΠ Χ φ π υ α Τ α π 2013-2014 ω 7
    • π  π παφ α JDBC JDBC (Java DataBase Connectivity) π φ π α φα α Java φα φα π JDBC παφ JDBC παφ ( π παφ υπ α π απ α π υυ π α π πα Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 1 π υ πα JDBC αφ ) Ν Γ φυ α 5 παφ α α υ π απ υ παφ α α αφ φυ α α απ π ( α π α α α υ ) 2 α υ 3 α 8
    • α SQL  H SQL (Structured Query Language) α α απ απ υ α π π α α α /α α υ α α απ υ α απ /π /π .    5 υπ α π απ α α φ π α α απ φ α :SELECT Υ FROM X WHERE Z υ α απ Ε Τ αΠ Χ φ π υ :Δ π υπ α αΧ α α Τ π 2013-2014 ω π 9
    • α SQL α Φο έ υ Ό α Πα α 1 π α 1. υ π π 3. π α2 2. α ώ Φ α 1 α α α α απ : υπ α απ υπ α FROM α υπ α α α υ υ WHERE α π υ π α α π υ SELECT 1 Μα α α ω Ό α Π αφ α ω ω 1 ω α υ ω α α : α φ α SQL: SELECT Ό ο α, Επώ υ ο FROM Φο τ τ : α α SQL: SELECT Ό ο α FROM Μα 5 Τ αΠ Χ υ 1; WHERE Α .Μ τ ώου=1 1; ατα WHERE Κωδ ό =1 φ π υ α Τ π 2013-2014 ω 10
    • α      παφ π παφ JDBC, π υ πα π π π υ . υ π (driver) π υ π π α π υ π α. java.lang.Class  ΝΚ π παφ α Java, π α α π α απ α αΠ java.sql.DriverManager  υπ π υ getConnection(String url) α α Οα . υ :π URL = jdbc: αυ υ π υ createStatement() π Statement π υ α α α παφ π . java.sql.Statement  5 π αυ α αυ α αΠ Χ π φ αα π υ execureQuery(String sql) α. Τ Π driver α α π. . jdbc:odbc:test java.sql.Connection  π υ forName(String className) Οφ .  α φ π υ α Τ π 2013-2014 ω . ππ α 11
    • α παφ  java.sql.ResultSet  απ απ  υ π π α π α ΝΚ π α α υ φ π α α. π απ υ α (π. . getInt(i)) π υα υ . α α α π υπ )  (α Connection con = DriverManager.getConnection(connectionURL); Statement st = con.createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()){ String s = rs.getString(ΟσameτfRow1Π); int i = rs.getInt(ΟNameOfRow2Π); } π 5 javadoc Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 12
    • π π Απ 5 1 ώ : α α αα απ υ υ πα α ; : SELECT Element FROM elements; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 13
    • π π π Απ 5 2 ώ α : α α α αα υ 2; απ υ υ πα α : SELECT Element FROM elements WHERE Quantity>2; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 14
    • π π Απ 5 3 α ώ : α α υ2 α αα απ υ υ πα α 50 Euro; π α : SELECT Element FROM elements WHERE Quantity>2 AND Prize<50; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 15
    • π π α Απ 4 ώ : α υ2 α α α α α π υ υ 50 Euro; πα α υ ; π α : SELECT Element, Prize FROM elements WHERE Quantity>2 AND Prize<50; 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 16
    • JDBC α υ π ..... Θα π MySQL (free & open source) http://www.mysql.com http://www.mysql.com/downloads/mysql/ MySQL 5.0 Reference Manual & Tutorial http://dev.mysql.com/doc/refman/5.5/en/preface.html http://dev.mysql.com/doc/refman/5.5/en/tutorial.html JDBC Driver for MySQL http://www.mysql.com/products/connector 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 17
    • 6 Γ αφ ά ε Java ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
    •  Γ αφ    α  awt, swing ά ε η6 α α α παφ Χ Ν Θ υ α α α α (listeners) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 2
    • Γ αφ ά ε η6 Java Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 3
    • Γ αφ     Γ αφ  Η  α παφ παφ Χ α α απ , π υ α υπ αφ παφ . α υ π π α α α υ α υ  υπ υ Ό α α πα απ π Η φα π α α π π π π π π υ υπ :   ά ε η6 α MacOS, δinux, Windows…. GUI αφα π α αφ α  (Graphical User Interface - GUI) υπ α π α α α α α π α απ υπ : παφ α αυ π π α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α π α α Δ α πα α αΔ α υ Ε υ Ε α 4
    • α   υ π απ υπ υ α  α α απ α α α π α α α α φα φα α … 1 φα α n α α α υ Δ α Ε - ΔΌ Ε  α α α π απ α αφ απ α π π ά ε η6 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ π υ (π υ, α ….) 5
    • Abstract Window Toolkit - AWT  To AWT α α    π Core Java API, α απ α α (java.awt.*). α Η φ υ α α, α π φ παφ α α α φα α υ α α java φα αφ υ πα α α α υυ π α απ α α απ υ α υ αφ α
    • javax.swing  Η α π awt.  α υ      ά ε η6 swing π υ Σ Java Cross platform compatibility Ί α φ ( φ απα απ π α α ) αφ υ α π α α α ! (Γ α ;;) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 7
    • πα   α swing / π υ AWT π φα π α πα α α α υ απ : http://dn.codegear.com/el/article/26970 ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 8
    • α α α παφ πα υ αυ π παφ JFrame: π αφ JPanel: α •Γ α •Η α α π α ά ε η6 JFrame υ, α α JPanel α Frame π Frame π α α α πα υ π υπ JFrame ( Panel απ π α Panel α . φα α α . υ JFrame α φα υ παφ α . π , παφ ( Frame α α α α υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 JPanel υ π , …) α) α N-1, Panel. Σ 9
    • α α α ά ε η6 α α - Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 10
    • JComponent   α απ υ  απ α π υ πα . container α α α get/setName() : / π get/setSize() : / π get/setMaximumSize() : get/setMinimumSize() : getWidth() : π φ π getHeight() : π φ getX() : π φ getY() : π φ πα Ό υ α α ά ε η6 α απ γ αφ υ swing α α α π υ JFrame, JDialog α JApplet υ πα υ • α φ φ / π / π : α υ component υ component φ π π φ π π υ component υ component υ Χ (π α υ component) υ Y (π α υ component) χ υ α α ω .Ε υπ υ .Γαπ π ίω http://docs.oracle.com/javase/6/docs/api/ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 11
    • JFrame  Η JFrame Frame  • α α swing υ α πα υ απ JComponent π υ Frame. . φα Component υ π : •JFrame(String name): α α υ α πα υ π •getContentPane: π φ Panel, α , α π α α α αφ α υ Frame •setDefaultCloseOperation(int i): υ π φ υ Frame α πα X •setVisible(boolean s): α Frame α φα •setResizable(boolean s): υ π φ υ Frame α πα υ Frame π π υ α υ υ π α . φ υ α υ setDefaultCloseOperation: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE EXIT_ON_CLOSE ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 12
    • JPanel   To JPanel α υ α φα   φα ά ε η6 Η α π π α φα υ υα α πα α υ π α αα π απ παφ α . α α α α α α (α π α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α αα απ υ add (Component c) α απ Layout α αυ π α α α) : 13
    • JButton   To JButton α υ πα υ.    α α       ά ε η6 απ π υ απ α π π π υ π ! : JButton(String s): υ α υ π π υ α α απ JComponent addActionListener(ActionListener l): υ υ π. α π α α φα π α υ φ υα α φ α πα α π αυ υ υ Frame. υ πα υ υ π υ υ s α υ π α . : υ π . υ (getContentPane()) . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π υ Frame 14
    •  α υ JButton. α1 α JFrame α π υ αυ α Imports: JButton, JFrame, Dimensions, Panel Η α α π constructor υ π φ υ α JFrame JFrame α υX π α υ υ ,α υα π α φ ά ε η6 panel , υ α υ υ TestFrame α π υ υ Frame αυ υ υ Frame Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 15 υ π
    • Menus (I)   α π π υ πα α υ          π υ α υ α α . JMenuBar JMenu JMenuItem JSeparator υ α υπ α π JMenu α menus: JMenuItem υ α αα α menus (JMenuItem) υ α (JMenu) π υ JMenu α α JMenuBar Έ α JMenu π απ α α JMenu (pop up υπ ) JSeparator α α ά ε η6 JMenuBar JSeparator setEnabled(false) setEnabled(true) setText(ΟReplaceΠ) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 16
    • Menus (II)  Η    ά ε η6 α JMenuBar ν π α υ JFrame α απ α πα α υ α φα α υ, JFrame: setJMenuBar(JMenuBar bar) H setEnabled π υ φα α α α α α π υ υπ υ α JMenuBar π π π απ π υ α α α φα H add υ JMenu π π π JMenuItem JMenu. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 17
    •   α α2 Θα υ υ menu υ PowerPoint. Θα α απ υ π π π File α α υ υ π υ. π π π Save As α View ά ε η7 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 18
    • JTextField JLabel  To JTextField α αφ     set/getColumns: / π α JTextField. set/getText: / π φ JTextField. π υ α π . To JLabel (π αφ    ά ε η6 π υ π παφ : α φ / π π α α . φα π υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ παφ . υ) π υ α α α π φ φ π υ π υ π υ φ / π α α π υ π π π α π α set/getText: JLabel. set/getIcon: JLabel. υ π φα α π α π 19
    •  α α3 π π π πα α α α α α α π JFrame φα α υα αφ α . α α. α α υ JLabel α φ φ υ JTextField α πα ά ε η6 π υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Η υ α Ί α α α α y α 20
    • JTextArea  To JTextArea α π α αφ παφ   JTextField. φ      ά ε η6 α α α π υ π υ( α πα π φ υ ) υ α α α α append(String s): υ s υ υπ υ setLineWrap(boolean): υ α αα α π α υ getLineWrap(): α π πα απ υ α α getLineCount(): α α π υπ JTextField setEditable(boolean): π αα π υ JTextArea Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ α 21
    • α  α α υ πα φα α4 υ α α φα υ α πα υ π α α φα α α JLabel, α JTextField α α JButton. απ π α υ π α α π α α υ π. α α JTextArea π υ α α α απ φ α . π α απ π α π αα α . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 22
    • α α ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 23
    • α  α α απ υ υ α Java υ α α π πα υ α α α αυ α α π (Layout Manager)    ά ε η6 π υ α α π , α υ α , FlowLayout   α π  αα Σ αα π α α α απ α π π α π α υ υ α α πα α . .π. υ. α. GridLayout   α Η π α α π υ πα α α α π α . .π. υ υ .Ό α απ απ α nxn π α υ α π υπ α α BorderLayout   α π α α α α α α ,α υ ,π α! α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 αυ . α α υπ πα 24
    • α α FlowLayout α α πα α υ υ π φα υ Panel ( Χ υ π default) υ Layout π υ υ α υ . Η πα π π υ α α αα α (α ) υ Layout π υ υ α π Panel α . υα Panel. π απ υ Σ πα α υ. π (Container) α αυ ά ε η6 υ πα α α α υ α π π π υ . α υ υ υ α Panel JFrame Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 25
    • α α GridLayout α α πα α υ α υ π απ υ πα α υ Panel ( Χ π default) υ Layout π υ υ υ . πα υπ α α α α α α α υ Layout π υ υ π Panel α . υα Panel. π απ υ Σ πα α υ. π (Container) α αυ ά ε η6 α α υ υ α π π π υ . υ α α υ υ υ α Panel JFrame Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 26
    • α α BorderLayout α α α π υ υ π πα α υ υ πα α υ Layout π υ π υ . υ α υ Layout π υ υ π Panel α . υα Panel. π α απ υ α π α π π α α υ Σ πα α υ. π (Container) α αυ ά ε η6 π υ υ α . α υ υ υ α Panel JFrame 27
    • υ       υα Layout Managers π π α υ π FlowLayout: π απ α α α πα υ α GridLayout: απ ! BorderLayout: υ α α . π α υ υ υα π π α panel π π α α . α υ πα α π π α υ α ! GridLayout (2x4) FlowLayout BorderLayout ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 28
    • υ ά ε η6 υα Layout Managers Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 29
    • Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 30
    • Listeners = Interfaces  Actions:       π υ π menu item Enter α text field α π υ π  Event ά ε η6 α α α Action… α Listeners α Events? Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 31
    • Listeners  α listeners?  Interfaces  M αυ π π α α π α πα π abstract υ .  π α π υ Listeners (= interface) α α αφ υ . π π α υπ α box π υ α α , π α α υ α. ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 32
    • α ά ε η6 α ActionListener (1/2) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 33
    • α ά ε η6 α ActionListener (2/2) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 34
    • Listeners  Interface KeyListener  Interface MouseListener  Interface MouseMotionListener  Interface WindowListener                  keyPressed(KeyEvent e) keyReleased(KeyEvent e) keyTyped(KeyEvent e) mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) windowActivated(WindowEvent e) windowClosed(WindowEvent e) windowClosing(WindowEvent e) windowDeactivated(WindowEvent e) windowDeiconified(WindowEvent e) windowIconified(WindowEvent e) windowOpened(WindowEvent e) ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 35
    • α α Calculator (1/5) Graphical User Interface Frame Functionalities Ν Actions Action Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 36
    • α α Calculator (2/5)  Frame Creation ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 37
    • α α Calculator (1/X)  Frame Creation ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 38
    • α α Calculator (1/X)  Action Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 39
    • α α Calculator (5/5)  Action Listeners ά ε η7 40