Översikt. GUI programering med Java SWT och C#.net. GUI Programmering Allmänt. Allmänt. Allmänt Laborationsmoment GUI programmering

Relevanta dokument
GUI programering med Java SWT och C#.net. Översikt

GUI programering med Java SWT och C#.net DVGA11

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

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

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Föreläsning 3. Programmering, C och programmeringsmiljö

Laboration 10 - Eclipse

Komponenter med COM (och COM+/VC++ 7.0)

Datorlaboration 0, Programmering i C++ (EDA623)

Instruktion för användande av Citrix MetaFrame

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Installationsanvisning för kursens programvara på egen dator

Laboration 1 Introduktion till Visual Basic 6.0

ID1004 Laboration 3, 5-6 November 2012

Datorlaboration 0, Programmering i C++ (EDAF30)

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

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

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objektorienterad programmering i Java I

NetBeans 7. Avsikt. Projektfönster

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Editering, Kompilering och Exekvering av Javaprogram

Hur du installerar Open Broadcaster Software (OBS) fo r HD-sa ndning

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

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Eclipse. Kort genomgång

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Design och konstruktion av grafiska gränssnitt

NetBeans 5.5. Avsikt. Projektfönster

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Interaktiva applikationer för dator (WPF) och web (Silverlight) Grafisk utvecklingsmiljö. Hela produktioner: design, layout, animationer, skins, etc.

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

2 Eclipse en handledning

Labb 1: Vad, hur, och varför?

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Installationsanvisning för Su Officemallar 2007 För PC

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

INSTALLATIONS ANVISNING

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Installationsguide för mysql och OLA Server/OLA Klient

Inledande programmering med C# (1DV402) Introduktion till C#

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse en handledning

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Föreläsning 1 & 2 INTRODUKTION

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Så här skriver du ditt första program i C++

Installation av atmel Studio på mac / linux

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Föreläsning 1: Introduktion till kursen

Installation av VDI för PC TIPS! Skriv ej ut använd hellre ipad. Nya lathundar publiceras regelbundet Version 1.0

Laboration 1. Objektorienterad programmering, Z1. Syfte

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

ASP.NET Thomas Mejtoft

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

INSTALLERA LYNC 2013 & UPPDATERA TILL SKYPE FÖR FÖRETAG

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Installationsanvisning för Su Officemallar 2007 För PC Word och PowerPoint

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Installationsguide, Marvin Midi Server

Laboration 10 - NetBeans

Alla rättigheter till materialet reserverade Easec

Objektorienterad programmering Föreläsning 2

Creo Customization. Lars Björs

Laboration 3 GUI-programmering

Microsoft Visual Studio 2017

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Instruktioner för uppkoppling mot NyA Open

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

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

Spelprogrammering med XNA och MonoGame

Snabbguide Visma Compact API Copyright Visma Spcs AB

Installationsmanual OpenOffice 3.0

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.

TDDC77 Objektorienterad Programmering

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Installationsanvisning för Su Officemallar 2011 För Mac Word och PowerPoint

Digitalt lärande och programmering i klassrummet

Föreläsning 3: Händelsestyrda program och användargränssnitt

FLEX Personalsystem. Uppdateringsanvisning

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Simulera med ModelSim

Transkript:

Översikt GUI programering med Java SWT och C#.net DVGA11 Allmänt Laborationsmoment GUI programmering Allmänt JAVA SWT/JFace,C#.net/WinForms IDE installation/konfiguration Eclipse Java SWT/JFace Visual studio C#.net Labbar Lab 1, 2 & 3 Vad kan förväntas? Allmänt Enskilda moment av labbar kommer enbart översiktligt att tas upp under föreläsningar Kräver mycket egen informationsökning Huvudsakliga informationskällan är Internet Tips på länkar kommer att ges Inspiration ok, kopiering förbjudet Målet Känna på att koda enkla användargränssnitt i 2 olika miljöer Java SWT/JFace och C#.net/WinForms Widgets GUI Programmering Allmänt Objekt, knappar, fönster, textfält m.m. Påverkas av användaren via mus och tangentbordet (vanligtvis) Kan skapa events (händelser) Layout Events 1

Widgets Layouts GUI Programmering Allmänt Positionerar widgets på skärmen/fönstret Events Widgets Layouts Events GUI Programmering Allmänt Mus-rörelse, -klick etc. Tangenttryckningar Menyval Knapptryckningar Fokus Historia Java GUI Windows GUI utveckling Win32 API, MFC, Visual Basic Web utveckling ASP Java Write once, run anywhere. AWT AWT (Abstract Windowing Toolkit) Släpptes 1995 som del av JDK 1.0 Skall man skriva ett portabelt program så måste man veta vilka komponenter som finns på de olika plattformarna och enbart använde dem som finns på alla plattformar SWING Standard Native look & feel Plattformsoberoende Native hastighet SWING x * x * SWT/JFACE I stort sett omöjligt SWT 2

Java GUI Java GUI AWT AWT Standard Native look & feel Plattformsoberoende Native hastighet SWING x * x * SWT/JFACE SWING (JFC Java Foundation Classes) Släpptes 1998 som del av JDK 1.1 Använder en väldesignad MVC arkitektur och ritar upp alla widgets utan att använda underliggande operativsystemskomponenter. Eftersom inga native widgets används så är swing portabelt men native look & feel är svårt att åstadkomma. Hastigheten kan också vara ett problem då alla widgets måste emuleras Swing har fått många uppdateringar och blivit mycket bättre prestandamässigt i och med SDK 1.4.2 och 1.5 SWT Standard Native look & feel Plattformsoberoende Native hastighet AWT SWING x * x * SWT/JFACE AWT SWING SWT (Standard Widget Toolkit) Släppt som en 3:e parts GUI toolkit Nov 2001 Använder både native (när det finns) och emulerade komponenter Bevarar hastighet och look & feel från orginal platformen Finns till följande plattformar Microsoft Windows, Linux, HPUX, Mac OS: Carbon QNX Photon Pocket PC Swing! MVC och andra högre abstraktionsnivåer stöds genom tillägget JFace MVC Java GUI JFace Tillhandahåller Viewer klasser för att abstrahera bort bla uppdateringar av widgets Tillhandahåller Actions för vad som skall hända när en användare tex. trycker på en knapp Tillhandahåller standardiserade dialogrutor och wizards JFace är beroende av SWT SWT är inte beroende av JFace Man kan manipulera SWT widgets direkt utan att gå igenom JFace SWT Java SWT att tänka på 1) Alla SWT program har en Display som är koppling mot det underliggande grafik systemet 2) Ett Shell (skal) är ett sammansatt objekt (composite) som innehåller andra objekt 3) Alla shell måste ha en layout För att kunna visa adderade objekt 4) För att visa ett shell så måste det öppnas (open) 5) Event loopen tar hand om GUI events (måste finnas) 6) Efter att shellet har kastats så skall man kasta (dispose) Displayen http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/jface.htm 3

1. 2. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 1. 2. 4. 5. 6. 8. 9. 10. 11. 13. 14. 15. 16. 17. 18. SWT/JFace Java vs C#.net 1. import org.eclipse.swt.swt; 2. import org.eclipse.swt.layout.rowlayout; 3. import org.eclipse.swt.widgets.*;.*; 4. public class Hello { 5. public static void main(string[] args) ) { 6. Display display = new Display(); 7. Shell shell = new Shell(display); 8. shell.setlayout( ( new RowLayout()); 10. Label label = new Label(shell, SWT.CENTER); 11. label.settext("hello World"); 12. label.setbounds(shell.getclientarea()); ()); 14. shell.pack(); 15. shell.open(); 16. // Set up the event loop. 17. while (!shell.isdisposed shell.isdisposed()) { 18. if (!display.readanddispatch display.readanddispatch()) { 19. // If no more entries in the event queue 20. display.sleep(); 21. } 22. } 23. display.dispose(); 24. } 25. } SWT 1. import org.eclipse.jface.window.*;.*; 2. import org.eclipse.swt.*;.*; 3. import org.eclipse.swt.widgets.*;.*; 4. public class Hello extends ApplicationWindow { 5. public Hello() { 6. super(null); 7. } 8. protected Control createcontents(composite parent) { 9. Label label = new Label(parent, SWT.CENTER); 10. label.settext("hello World"); 11. return parent; 12. } 13. public static void main(string[] args) ) { 14. Hello w = new Hello(); 15. w.setblockonopen(true); 16. w.open(); 17. Display.getCurrent().dispose(); (); 18. } 19. } JFACE Hello.java Hello.class JVM compile execute Source Byte code Hello.cs compile Hello.exe execute CLR Source CIL Java vs C#.net http://en.wikipedia.org/wiki/comparison_of_c_sharp_and_java http://www.harding.edu/fmccown/java1_5_csharp_comparison.html.net.net Utvecklad av Microsoft (2000).NET är främst utvecklat för Windows Nuvarande version (3.5) släpptes Nov 2007 http://www.microsoft.com/net/downloadcurrent.aspx ECMA standard Primära språk C#, Visual Basic.NET, C++/CLI och J# Tredjeparts språk (bland andra) Ada, COBOL, LISP, Perl, Ruby... http://en.wikipedia.org/wiki/image:overview_of_the_common_language_infrastructure.png 4

.net stöder Winforms och Webforms.net GUI Winforms Winforms = standard GUI applikationer Webforms = webbprogrammering Alternativ till.net, Mono Utvecklad av Novell (2001) för att vara kompatibel med.net och ECMA Mono stöder Linux, Unix, FreeBSD, Mac OS X, Solaris och MS Windows Nuvarande version (2.4) släpptes Mars 2009 Motsvarar ett mellanting mellan.net1.1 -.net2.0 Windows Forms 2.0 stöds fullt ut (ej Windows Presentation Foundation) http://www.mono-project.com/main_page Språk i dagsläget C#, Java, Boo, Python, Visual Basic.NET, PHP Eclipse 1/4 Eclipse 2/4 Eclipse Easyeclipse SWT & Jface 1. File -> New-> Java Project Ge projektet ett namn -> next 2 2. Klicka på fliken Library -> add library Välj SWT-> next 3. Bocka i include support for JFace library -> finish -> finish 1 3 1 Eclipse SWT och JFace manuellt SWT (enkelt) http://www.eclipse.org/swt/eclipse.php JFace (något svårare) http://wiki.eclipse.org/jface#setting_up_an_eclip se_project_to_use_swt_and_jface http://www.easyeclipse.org/site/distributions/desktop-java.html 5

Eclipse 3/4 använda SWT För att kompilera och köra SWT applikationer så måste man ha installerat och lagt till swt.jar i sitt projekt. Endera som i exemplet med easyeclipse eller manuellt För detaljerad information om SWT se http://www.eclipse.org/swt/ Eclipse 4/4 använda SWT För att kunna exportera sitt projekt till en jar fil så måste fat jar pluginen för eclipse vara installerad http://fjep.sourceforge.net/ (redan gjort i easyeclipse) För att få det hela att fungera så måste man även bocka för att man vill använda one-jar och välja att inkludera alla externa jars som man använder (exempelvis swt.jar) http://www-128.ibm.com/developerworks/java/library/j-onejar/ Skulle det ändå inte fungera så kan man pröva att placera swt-win32.dll i samma mapp som jar filen http://fjep.sourceforge.net/fjepfaq.html Visual Studio.net Visual Studio.NET Ladda ner Visual Studio MSDNAA Bränn skivorna eller montera dem i daemon tools eller liknande Installation Installera.net om det inte redan är gjort http://www.microsoft.com/downloads/details.aspx?familyid=333325fdae52-4e35-b531-508d977d32a6&displaylang=en Följ anvisningarna för att installera Visual studio.net välj C# Sen kan man ta en kaffe eller 3 Laborationer Generellt Labbgrupper skall bestå av 2 personer (undantagsvis 3) Välj själv era labbpartners Ändringar av labbgrupper under kursens gång skall undvikas Deadline är alltid kl 17.00 Alla labbar skall följa standard http://www.it.kau.se/cs/students/lab_info/labmall.php Viktigt att inte glömma Skicka alla rapporter till: jonas.karlsson@kau.se Lämna in ett labbomslag Dokumentera källkoden Man skall lätt kunna se vad alla klasser/metoder gör/är Skicka med klassdiagram Källkod Ev. körbar fil (.jar fil) 6

Krav: Laborationer Generellt Godkänt på alla 3 laborationerna för att få godkänt på Laborationsmomentet som helhet Lämna in laborationer samt ev. returer innan deadline Deadlines kommer att vara uppsatta på hemsidan En retur får med automatik 1 veckas deadline ifrån att den är färdigrättad. De guidelines och riktlinjer för GUI som tagits upp under kursen skall användas Lab 1 (Deadline se schema) Luffarschack (Tic-Tac-Toe) Uppgift: Skriv ett luffarschack spel som går att spela (ingen AI) 3x3 rutor. Språk : Java SWT Krav (grundläggande) Programmet skall kunna köras utan eclipse med kommandot java -jar programnamn.jar Programmet skall använda SWT (ev. JFace) Frivillig Extra uppgift Lösningen skall vara implementerad med MVC mönstret Lab 2 (Deadline se schema) Luffarschack (Tic-Tac-Toe) Uppgift: Skriv ett luffarschack spel som går att spela (ingen AI). Språk : C#.net (Winforms) Krav (grundläggande) Programmet skall kunna köras utanför Visual Studio (som program.exe) Programmet skall använda.net Frivillig Extra uppgift Lösningen skall vara implementerad med MVC mönstret Lab 3 (Deadline se schema) MP3Spelare Uppgift: Skriv ett GUI för en MP3 spelare som kan spela valfri mp3 fil klass för att spela upp mp3 musik kommer att tillhandahållas. Språk : Java SWT (ev. JFace) Krav (grundläggande) Programmet skall kunna köras utan eclipse med kommandot java -jar programnamn.jar Programmet skall använda SWT (ev. JFace) Lösningen skall vara implementerad med MVC mönstret Användaren skall kunna få upp en dialog ruta där man kan välja en mp3 fil (skall kunna öppnas när som helst). Den valda mp3 filen skall kunna spelas och stoppas och återstartas (inget krav att den skall starta ifrån samma punkt) Spelarfönstret skall kontinuerligt uppdateras om hur långt låten har spelats och filnamnet. GUIet skall vara robust (ex. det skall inte gå att spela eller stoppa en låt innan den är laddad) Implementera Drag n Drop på spelaren så att man kan släppa en låt på spelaren och den skall då spela upp denna Frivillig Extra uppgift Spelarfönstret skall ha valfri form och färg och kunna flyttas runt samt stängas Knapparna skall vara bilder. Flera sånger skall kunna väljas så att de lägger sig i en kö och spelas upp efter varandra (skall också fungera med drag n drop) 7

Länkar 1/2 Länkar 2/2 COMP455 http://www.harding.edu/fmccown/classes/comp445-f07/ Labbmall http://www.it.kau.se/cs/students/lab_info/labmall.php Java vs C# http://en.wikipedia.org/wiki/comparison_of_c_sharp_and_java http://www.harding.edu/fmccown/java1_5_csharp_comparison.html AWT SWT SWING JFACE Eclipse & SWT JFace http://www.easyeclipse.org/site/distributions/desktop-java.html http://www.eclipse.org/swt/eclipse.php http://www.developer.com/java/other/article.php/10936_3330861_1 http://wiki.eclipse.org/jface#setting_up_an_eclipse_project_to_use_swt_and_jface http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/jface.htm Kodexempel Java & C# (+ annat) http://www.java2s.com http://www.tomlauren.com/weblog/archives/000022.html 8