Restriktioner för en applet



Relevanta dokument
Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Distribuerade system. CORBA eller RMI

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

Svenska Du kan med flyt läsa texter som handlar om saker du känner till. Du använder metoder som fungerar. Du kan förstå vad du läser.

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Att använda Java SE JDK 6

Webb-bidrag. Sök bidrag på webben Gäller från

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Vi skall skriva uppsats

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Administration Excelimport

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

ELEV- HANDLEDNING (Ansökan via webben)

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

Idag: Dataabstraktion

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Introduktion till arv

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Arbeta bäst där du är Dialect Unified Mi

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h

Uppdragsbeskrivning. Digital Skyltning. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Du ska nu skapa ett litet program som skriver ut Hello World.

Skriva B gammalt nationellt prov

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

Gissa det hemliga talet

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Jo, Den Talande Boken har så många möjligheter inbyggda, att den kan användas från förskoleklassen och ända upp på högstadiet.

Diskussionsfrågor till version 1 och 2

OOP Objekt-orienterad programmering

Bedömningsuppgift i geografi och svenska (se kraven och bedömning för svenska längre ned)

Administrera utskick på utbildningstillfälle

Föreläsnings 10 - Överlagring, Konstruerare, Arv, Mer Exceptions, Reguljära Uttryck

Objektorienterad programmering

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Förskolan Vårskogen, Svaleboskogen 7. Plan mot diskriminering och kränkande behandling

Svenska som andraspråk, 1000 verksamhetspoäng

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Planering - LPP Fjällen år 5 ht-16

Tränarguide del 1. Mattelek.

My Language a g Biography

Dash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.

Manual för BPSD registret. Version 6 /

Kurs: Svenska som andraspråk Kurskod: GRNSVA2 Verksamhetspoäng: 1000

Energi & Miljötema Inrikting So - Kravmärkt

WEBBUTVECKLING Bilder

Lathund för överföring av rapporter och ljudfiler

Syftet med en personlig handlingsplan

När jag har arbetat klart med det här området ska jag:

Individuellt Mjukvaruutvecklingsprojekt

DEMOKRATI 3 DEMOKRATINS VILLKOR

Få jobb förmedlas av Arbetsförmedlingen MALIN SAHLÉN OCH MARIA EKLÖF JANUARI 2013

FOLKUNIVERSITETET 1 (11) Bildmanér för Webb3. Vår referens: Fredrik Suter Version 1. Stockholm

Föräldrabroschyr. Björkhagens skola - en skola med kunskap och hjärta. Vad ska barnen lära sig i skolan?

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Frågor och svar för föreningar om nya ansökningsregler för aktivitetsbidrag från och med 1 januari 2017

Mera om generik. Innehåll. Generik och arv Wildcards Vektorer och generik Generiska metoder. EDA690 (Mera om generik) HT / 24

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Nedfrysning av spermier. Information om hur det går till att lämna och frysa ned spermier.

Presentationsövningar

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Klassen javax.swing.timer

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Krigsreportage inbo rdeskriget i Bosnien

Rehabkollen Ditt stöd i rehabiliteringsarbetet

Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Välkommen till Arbetsförmedlingen! Information till dig som är arbetssökande

Rapport uppdrag. Advisory board

Introduktion till Open 2012

Klasser och objekt i C#

Kiwiböckerna metod och begrepp

Bortom fagert tal om bristande tillgänglighet som diskriminering

Bra att veta om sexuella övergrepp. För barn

7. SAMHÄLLSORIENTERING ÅK 5

Problemlösning. Analys och design OOA&D. Programutveckling sker i faser OOA&D. Fastställa och analysera förutsättningarna/ kraven.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 29 november 2003 kl , sal D34.

UPPGIFT: SKRIV EN DEBATTARTIKEL

Programmera en NXT Robot

Hemsida Arbetsrum. Skapa arbetsrumslista

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

Lite skoj - typ. 5DV085 - Programspråk. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

BLUSTAR WEB DATOR Röstbrevlåda och aktiviteter på anknytningar för anställda på KI med KI ID, från en dator.

Objektorienterad programmering D2

Föreläsning 3 sept 10 (Måndag v 37). DD Chapter 3.

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Riktlinjer för medborgardialog

Miljö och material på förskolan, hållbar utveckling

FIRST LEGO League. Västerås 2012

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Planera och framföra ett högtidstal

Invisible Friend Senast uppdaterad

Kvaliteten i din hemtjänst Kungsholmen

Transkript:

) UHOlVQLQJ RUWRPDSSOHWDU *8,E\JJDUHYLGHR Innehåll Appletar Vad, hur? Gränssnittsbyggare Kort översikt Kort "titt /demo av typiska IDE och GUIbyggare som Borland JBuilder Kort titt på IDEdelen av VisualWorks Videor previous next $SSOHW En applet är en sorts miniapplikation konstruerad för att exekveras i en Web-browser eller appletviewer Restriktioner för en applet Det finns flera restriktioner på vad en applet tillåts göra Orsaken är att en applet skall kunna hämtas och exekveras på ett säkert sätt för klienten en applet kan tex inte accessa det lokala filsystemet previous next 2 %M UQ(LGHUElFN 1

En applet skrivs som subklass till klassen Applet den har ingen main()-metod klassen Applet med superklasser beskriver ett slags ramverk (framework) med både definitioner och processbeskrivning (baserat på bla template methods) valda metoder som init, paint och mousedown i den aktuella (egna) klassbeskrivningen omdefinieras därefter för att beskriva önskat beteende previous next 3 ([HPSHO0LQI UVWD DSSOHW Javakod import java.applet.*; import java.awt.*; // Detta måste vara med! // och det här för grafiken! /** En applet som säger "Hallå GRIP!" */ public class FirstApplet extends Applet { // Följande metod ritar appleten. // Klassen Graphics tar hand om utritning i Java. } public void paint(graphics g) { g.drawstring("hallå GRIP!", 25, 50); } previous next 4 %M UQ(LGHUElFN 2

PLQI UVWD DSSOHW HTML-kod <HTML> <HEAD> <TITLE> Min första applet </TITLE> </HEAD> <BODY> <APPLET CODE="FirstApplet.class" WIDTH=150 HEIGHT=50> </APPLET> </BODY> </HTML> previous next 5 (Q$SSOHWNDQWHVWDV PHG WWW browser som är"appletförberedd" tex Netscape, HotJava eller InternetExplorer En Appletviewer >appletviewer HTML-filen previous next 6 %M UQ(LGHUElFN 3

6NDSDDSSOHWVWHJI UVWHJ Skapa en klass som VXENODVVWLOO$SSOHW kompilera Skapa +70/ILO som har den aktulla appleten som inom märkorden APPLET och /APPLET där den aktuella appletens klass anges efter märkordet CODE Test appletviewer www-browser previous next 7 (QDSSOHWV OLY En applet använder INTE static main-metoden Istället anropas följande metoder av systemet init() för initiering start() som anropas när appleten är nerladdad till den sida som skall visa den (eller då användaren bläddrar tillbaks till sidan) stop() anropas då användaren lämnar sidan med appleten, eller minimerar fönstret destroy() anropas då appleten termineras, då nätbläddraren avslutas eller användaren går till annan adress på internet previous next 8 %M UQ(LGHUElFN 4

([HPSHO(QDSSOHWVOLY import java.awt.*; import java.applet.*; public class TheLifeOfAnApplet extends Applet { // Anropas vid instansieringen public void init() { trace("init");} //Anropas då appleten är nerladdad public void start() { trace("start");} // Stoppa tillfälligt exekvering av applet public void stop() { trace("stop");} previous next 9 //Då browsern avslutas eller annan internetadress väljs public void destroy() { trace("destroy");} // Då appleten måste ritas om public void paint(graphics g){ // Här känner vi till Graphics så... trace(g, "paint");} previous next 10 %M UQ(LGHUElFN 5

// och några metoder för trace-utskrifter private void trace(string s) { System.out.println(s); // getgraphics() konstruerar en grafisk kontext trace(getgraphics(), s);} private void trace(graphics g, String s) { trace(g, s, 50, 20);} } private void trace(graphics g, String s, int x, int y) { g.drawstring("***", x, y); g.drawstring(s, x, y + 30); g.drawstring("***", x, y + 60);} previous next 11 ([HNYHULQJDYHQDSSOHW Då vi exekverar en applet kan vi i HTMLdokumentet ange CODEBASE internetadress för appleten ALT text som skall visas om nätbläddraren inte klarar av Java-applets NAME ett namn på appleten så att flera appletar på samma sida kan kommunicera ALIGN, VSPACE, HSPACE placering och luft PARAM parametrar till appleten styrda från HTML-sidan previous next 12 %M UQ(LGHUElFN 6

ARCHIVES refererar en s.k. JAR-fil med både appletkod och resurser OBJECT refererar en seriealiserad version, som kan spara inställningar mellan olika exekveringar previous next 13,Ã+70/ILOHQ ([HPSHO3DUDPHWUDU <APPLET code= SomeApplet.class" width=500 height=320> <PARAM NAME=CourseName VALUE= GRIP01 > <PARAM NAME=CourseID VALUE= 2D1953 > <PARAM NAME=LectureNumber VALUE=10></VALUE></APPLET>,Ã-DYDNRGHQ String course = getparameter( CourseName ): if (course == NULL) course = A NADA course ; String lectno = getparameter( LectureNumber ); int no = Integer.parseInt(lectno); previous next 14 %M UQ(LGHUElFN 7

$SSOHWDURFK6ZLQJ I Swing finns det en klass JApplet som vi kan använda istället för Applet previous next 15 RPPXQLNDWLRQPHOODQDSSOHWDUQlWEOlGGUDUHPP Med hjälp av appletcontext() kan man spela upp ljudfiler hämta bilder ersätta aktuell websida med annan fråga om vilka appletar som finns på sidan (dvs vilka namn man givit dem efter nyckelordet NAME) skicka meddelanden till applet med visst namn på samma sida Exempel: alla appletar på sidan Enumeration e = this.getappletcontext().getapplets(); while(e.hasmoreelements()) { text.append("\n" + ((Applet) e.nextelement()).getappletinfo()); } Där text en JTextArea previous next 16 %M UQ(LGHUElFN 8

Exempel: kommunicera med en annan applet Applet annanapplet = this.getappletcontext().getapplet("paint"); if(annanapplet!= null) { ((Applet3) annanapplet).setinfo( new Date().toString()); } Appleten som vi vill kommunicera med har namnet Paint <APPLET CODEBASE = "." CODE = "gripf10.applet3.class NAME = "Paint" WIDTH = 400 HEIGHT = 300 HSPACE = 0 VSPACE = 0 ALIGN = center> </APPLET> Klassen Applet3 implementerar en metod setinfo(string) Metoden paint(graphics) ritar sedan ut angiven sträng Man kan kommunicera med appleten från JavaScript också var paintapplet = document.applet.paint; paintapplet.setinfo( Hej jag är JavaScript, bra mot... ); previous next 17 *8,RFK,'(YDG" GUI (Graphical User Interface), vad? Grafisk gränssnittsbyggare Verktyg för att konstruera grafiska gränssnitt både presentation och interaktion Baseras vanligen på kraftfullt toolkit med komponenter och framework för att beskriva delar av beteendet Ofta objektorienterad språk i botten som någon OO-Lisp, Objective-C, Object-Pascal, Java eller Smalltalk IDE Integrated Development Environment Hel miljö som stöder programutvecklingen Ibland har man tillgång till hela källkoden för miljön också I tex VisualWorks\Smalltalk och ofta i Lispbaserade system previous next 18 %M UQ(LGHUElFN 9

$YVLNW Anledningar till att använda gränssnittsbyggare Konstruera goda interaktiva tillämpningar på så kort tid som möjligt. Låta programmerare (och andra) fokusera på designen istället för på detaljer i miljö och implementationsredskap. WYSIWYG (What You See Is What You Get) med IBs baserade på målarlåda Enklare att "portera" och återanvända kod previous next 19 0RWLYDWLRQ Varför IBs? Stor del av koden har med UI att göra Undersökningar har visat att så mycket som DYNRGHQNDQ KlQI UDVWLOOJUlQVVQLWWHW (Myers, Blair och andra) Bråttom att få ut produkter Kraven på att WLGHQ från idé till produkt skall vara kort har ökat Mindre kod att skriva för hand Grafiska XWYHFNOLQJVYHUNW\JUHGXFHUDURIWDGHQGHODYNRGHQVRP PnVWHVNULYDV på konventionellt sätt med 80% previous next 20 %M UQ(LGHUElFN 10

IRUWV Enklare för domänexperter och användare att delta i utvecklingen Man önskar att kravställare, slutanvändare och människor med olika expertkunskap skall kunna bidra och deltaga under alla steg av utvecklingen Prototyper För att minimera missförstånd (i tex krav) eller få bättre utgångspunkter vid designdiskussioner vill man ofta så fort som möjligt konstruera prototyper previous next 21 IRUWV Anpassning till olika underliggande mjuk- och hårdvara Separation av applikation och grafiska paket på lägre nivå gör det enklare att implementera olika interaktionstekniker eller unyttja olika hårdvaror Minimera risken för fel Med en gränssnittsbyggare ökar trovärdigheten och risken för fel i dessa delar minimeras genom att (väl-) designade och uttestade komponenter används. previous next 22 %M UQ(LGHUElFN 11

,'(HUYDGRFKYDUI U" En IDE, Integrated Development Environment, innehåller Allt från enkla WH[WHGLWRUHU, VWUXNWXUHGLWRUHU, YHUNW\JI UDWW VWUXNWXUHUDRFKKLWWDNRGRFKPHGGHODQGHQ, *8,E\JJDUH, NRGJHQHUDWRUHU till DYDQFHUDGHDYOXVQLQJVYHUNW\J, YHUVLRQVKDQWHUDUH och WHDPXWYHFNOLQJVVW G Plus en massa annat som Stöd för att konstruera databasscheman och andra avancerade databaskonstruktions- och hanteringsstöd Verktyg för att konstruera distribuerade tillämpningar Tex via automatiskt konstruktion av CORBA-IDLer från objektbeskrivningar och vice versa Webkonstruktionsverktyg Testverktyg Refactoringverktyg Exakt vad för verktyg och stöd varierar mellan dom olika verktygen previous next 23 9LWLWWDUOLWHVQDEEWSnWYn,'(HU JBuilder för Java, version 5 VisualWorks\Smalltalk, version 5i.4 non commercial Troligen tittar vi på snarlika betaversionen av VW7 (som i beta använder VW5i.4:as VM, och dom nya GUI-verktygen är inte med än) Lite att tänka på Hur är den grundläggande filosofin? Vilka verktyg finns? Hur lätt är det att ändra, söka, avlusa, mm? Är IDEn bra för nybörjare och/eller experter? Är hjälpen bra? Finns det kortkommandon och genvägar? Vilka andra verktyg finns för respektive IDE? Vad saknas? previous next 24 %M UQ(LGHUElFN 12

9LGHRYLVQLQJ Vi ser avsnitt av HyperCard Peridot ARK, Alternate Reality Kit Snap-dragging. previous next 25 %M UQ(LGHUElFN 13