GUI («Graphical User Interface»)
|
|
|
- Håvard Bråten
- 6 år siden
- Visninger:
Transkript
1 GUI («Graphical User Interface») Om GUI JavaFX Se også på Infoskrivet ifi/in1010/v19/notater/fx-intro-in1010.pdf Programkoden til eksemplene i v19/programmer/gui/ Dokumentasjon av JavaFX i
2 Hvorfor trenger vi GUI? Tripp-trapp-tresko med og uten GUI $ java TTT1 X spiller 8 Hva spiller O? 5 O spiller 5 X spiller 1 Hva spiller O? 3 O spiller 3 X spiller 2 Hva spiller O? 7 O spiller 7 Vinneren er O! $ java TTT2 X Hva spiller O? 5 X O X Hva spiller O? 8 : Hva spiller O? 2 Vinneren er O! X O O X O X
3 Positive og negative sider ved GUI Fordeler med GUI Mer intuitivt å bruke Færre muligheter for brukerfeil Visuelt mer tiltalende Ulemper Mer komplisert å programmere Mange ulike GUI-biblioteker å velge blant Svært få biblioteker fungerer for både Linux, Mac og Windows.
4 En norsk verdenssuksess Historien om Qt Opprinnelig laget av det norske firmaet Trolltech i Hovedideen var at programmer skrevet i C++ kunne linkes med et Qt-bibliotek og så kjøre på ulike systemer. Sannsynligvis det mest brukte generelle vindusbiblioteket i og 2000-årene. Solgt til Nokia i 2008 (og siden til Digia og The Qt Company). Finnes i både kommersiell og åpen kildekode-versjoner. Brukes i dag i Google Earth, Mathematica, Tesla-biler,...
5 Hvorfor hører GUI hjemme i IN1010? Hvorfor GUI i IN1010? Allmennkunnskap for programmerere Et godt eksempel på bruk av OO Viser en ny programmeringstankegang: Hendelsesorientert programmering (neste uke) Et godt eksempel på bruk av parallellisering og tråder (neste uke)
6 Historien om Java og GUI Java og GUI Java har alltid hatt som mål at programmene skal kunne kjøres uendret på alle platformer. Derimot skal utseendet tilpasses operativsystemets «standard». AWT («Abstract Window Toolkit») fra 1995: et ganske enkelt grensesnitt mot OSets vindussystem Swing fra 2007: et mer avansert og generelt system bygget oppå AWT JavaFX fra 2012: et enda mer komplett og velstrukturert system Fra og med 2018: JavaFX ikke lenger en del av standard Java men et frittstående produkt
7 Hvordan kan jeg få kjørt mine programmer med JavaFX? Kjøring Grafiske programmer trenger mer støtte ved kjøring fra systemet enn våre tidligere tekstorienterte programmer. Ifis Linux-maskiner Alt skal fungere helt fint. Ifis Windows-maskiner JavaFX fungerer bra på noen Windows-maskiner, men ikke på alle. Ved problemer, start X-Win32 og logg deg inn på en Linux-maskin (f eks login.ifi.uio.no); se https: //termvakt.uio.no/fjerninnlogging#xterm_via_x-win32.
8 Hvordan kan jeg få kjørt mine programmer med JavaFX? Kjøring på privat maskin Det beste rådet er: Installer Java 8. Da får du automatisk med JavaFX. Andre muligheter (om du har en nyere Java) Fra Linux: ssh -Y login.ifi.uio.no Fra Mac: Installer XQuartz fra Fra Windows: Kjør RemoteDesktop Connection til win.uio.no og så X-Win32 til login.ifi.uio.no Du kan installere JavaFX som egen pakke fra install-javafx-sdk html (men mange har hatt problemer).
9 Hvordan lager vi et GUI-program? Teatermetaforen De som laget JavaFX, tenkte seg at det en bruker ser i et GUI-vindu, minner mye om det man ser på teater når teppet går opp. Teater Scene Kulisser class Stage class Scene class Pane
10 Hvordan lager vi et GUI-program? Teatret Et teater settes opp på denne måten: import javafx.application.application; import javafx.stage.stage; public class Xxx extends Application public void start(stage teater) { // Sett opp scene og kulisser teater.settitle("overskrift"); // teater.setscene(scene); teater.show(); public static void main(string[] args) { launch(args);
11 Hvordan lager vi et GUI-program? Selv om det ikke er ferdig, kan programmet kjøres: $ javac Xxx.java $ java Xxx
12 Hvordan lager vi et GUI-program? Alt med JavaFX ligger i biblioteket og vi må importere klassene vi trenger. Alle JavaFX-programmer må være subklasser av Application. main må kalle launch for å starte JavaFX. Hovedklassen må definere en start som setter opp det hele; parameteren angir hovedvinduet («teateret»). settitle angir vinduets tittel. show angir at teppet skal gå opp. import javafx.application.application; import javafx.stage.stage; public class Xxx extends Application public void start(stage teater) { // Sett opp scene og kulisser teater.settitle("overskrift"); // teater.setscene(scene); teater.show(); public static void main(string[] args) { launch(args);
13 Hvordan lager vi et GUI-program? Scener og kulisser Vi må også lage en scene og en (foreløbig tom) samling kulisser: import javafx.application.application; import javafx.scene.layout.pane; import javafx.scene.scene; import javafx.stage.stage; public class Xxx2 extends Application public void start(stage teater) { // Sett opp scene og kulisser Pane kulisser = new Pane(); Scene scene = new Scene(kulisser); teater.settitle("overskrift"); teater.setscene(scene); teater.show(); public static void main(string[] args) { launch(args);
14 Hvordan lager vi et GUI-program? Ulike typer kulisser Det finnes mengder av ting vi kan bruke som kulisser; vi skal bruke: tekst (class Text) firkanter (class Rectangle) sirkler (class Circle) linjer (class Line) polygoner (class Polygon)
15 Det kjente hallo-programmet Et eksempel: Hallo-programmet import javafx.application.application; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.scene.text.font; import javafx.scene.text.text; public class Hallo extends Application public void start(stage teater) { Text hilsen = new Text("Hallo, alle sammen!"); hilsen.sety(40); hilsen.setfont(new Font(40)); Pane kulisser = new Pane(); kulisser.getchildren().add(hilsen); Scene scene = new Scene(kulisser); teater.settitle("velkommen til Java FX"); teater.setscene(scene); teater.show(); public static void main(string[] args) { launch(args);
16 Det kjente hallo-programmet Vi må importere de klassene vi trenger opprette teksten: Text hilsen = new Text("Hallo, alle sammen!"); Vi kan tilpasse elementene ved for eksempel å endre fontstørrelsen: hilsen.setfont(new Font(40)); inkludere tekstelementet blant kulissene: kulisser.getchildren().add(hilsen);
17 Det kjente hallo-programmet Nå kan programmet kjøres: $ javac Hallo.java $ java Hallo
18 Koordinatsystemet Plassering Når vi har flere kulisser, må vi angi posisjonen så de ikke havner oppå hverandre. Koordinatsystemet er litt uvant: Y-aksen går nedover. x y Enheten er piksler på skjermen.
19 Et eksempel fra Harry Potter Symbolet for Deathly hallows fra Harry Potter-bøkene kan lages slik: et Circle-objekt sort rand med bredde 4; hvit innmat et Line-objekt brunt, med bredde 4 et Polygon-objekt purpurfarget rand med bredde 4; hvit innmat
20 Et eksempel fra Harry Potter import javafx.application.application; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.scene.shape.*; import javafx.scene.paint.color; public class DeathlyHallows extends Application public void start(stage teater) { final double r = 63; Circle stein = new Circle(r); stein.setcenterx(100); stein.setcentery(224-r); stein.setstroke(color.black); stein.setstrokewidth(4); stein.setfill(color.white); Line stav = new Line(100,224, 100,0); stav.setstroke(color.brown); stav.setstrokewidth(4); Polygon kappe = new Polygon(0,224, 200,224, 100,0); kappe.setstroke(color.purple); kappe.setstrokewidth(4); kappe.setfill(color.white); Pane kulisser = new Pane(); kulisser.getchildren().add(kappe); kulisser.getchildren().add(stein); kulisser.getchildren().add(stav); Scene scene = new Scene(kulisser); teater.settitle("the deathly hallows"); teater.setscene(scene); teater.show();
21 Å plassere ting i et rute nett Plassering i rutenett Noen ganger trenger vi å plassere kulisser i et rutenett. Til det finnes klassen GridPane som selv er en kulisse. (Det er altså mulig å bygge kulisser på kulisser på kulisser... )
22 Å plassere ting i et rute nett import javafx.application.application; import javafx.application.platform; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.scene.layout.gridpane; import javafx.scene.control.button; import javafx.scene.text.text; import javafx.scene.text.font; /* Brettet: Spillerne: X - maskinen O - brukeren */ public class TTT0 extends Application public void start(stage teater) { GridPane rutenett = new GridPane(); rutenett.setgridlinesvisible(true); rutenett.add(new Text(" "), 0, 0); rutenett.add(new Text("X"), 1, 0); rutenett.add(new Text("X"), 2, 0); rutenett.add(new Text(" "), 0, 1); rutenett.add(new Text("O"), 1, 1); rutenett.add(new Text("X"), 2, 1); rutenett.add(new Text("O"), 0, 2); rutenett.add(new Text("O"), 1, 2); rutenett.add(new Text(" "), 2, 2); Pane kulisser = new Pane(); kulisser.getchildren().add(rutenett); Scene scene = new Scene(kulisser); teater.settitle("tripp-trapp-tresko"); teater.setscene(scene); teater.show();
23 Hva hvis jeg trenger en fil? Å be om et filnavn JavaFX kan også brukes til å be om et filnavn. La oss anta at vi har noen filer med farger angitt som RGB-verdier: akvamarin.rgb Så kan vi i programmet vårt be brukeren velge en slik fil:
24 Hva hvis jeg trenger en fil? Klassen FileChooser Denne klassen gjør det enkelt å be brukeren om et filnavn: File file = new FileChooser(). showopendialog(teater); import javafx.application.application; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.stage.filechooser; import javafx.scene.paint.color; import javafx.scene.shape.circle; import java.io.file; import java.util.scanner; public class VisFarge extends Application public void start(stage teater) { int r = 0, g = 0, b = 0; File file = new FileChooser().showOpenDialog(teater); try { Scanner f = new Scanner(file); r = f.nextint(); g = f.nextint(); b = f.nextint(); catch (Exception e) { Circle fargedemo = new Circle(100); fargedemo.setcenterx(100); fargedemo.setcentery(100); fargedemo.setfill(color.rgb(r,g,b)); Pane kulisser = new Pane(); kulisser.getchildren().add(fargedemo); Scene scene = new Scene(kulisser); teater.settitle("rgb-farge"); teater.setscene(scene); teater.show();
25 Dagens lille moralpreken Til slutt Husk JavaFX er et enormt bibliotek; det er lett å gå seg vill. Det er ofte mange måter å gjøre noe på, men ikke alle varianter passer sammen. Søking på internettet vil lett kunne gi kode som forvirrer mer enn den hjelper. Forelesningene og IN1010-introduksjonsheftet inneholder det man trenger å vite for å kunne lage enkle GUI-programmer, og løse oblig nr 6. Når du skal programmere GUI i IN1010, ta utgangspunkt i et program som finnes, og modifiser det. Skriv GUI-koden først og få den til å virke, før du begynner å lage den avanserte innmaten.
GUI («Graphical User Interface»)
GUI («Graphical User Interface») Om GUI JavaFX Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v18/gui/fx-intro-in1010.pdf Programkoden i https://www.uio.no/studier/emner/ matnat/ifi/in1010/v18/gui/
GUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v18/gui/fx-intro-in1010.pdf
En kort introduksjon til JavaFX
En kort introduksjon til JavaFX Til bruk i IN1010 Dag Langmyhr Våren 2018 (versjon 17. april 2018) En kort introduksjon til JavaFX Dag Langmyhr Våren 2018 (versjon 17. april 2018) 1 Introduksjon For å
GUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/
Fra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
GUI 1. Grafisk brukergrensesni1 i Java med JavaFX. INF1010 Stein Michael Storleer
GUI 1 Grafisk brukergrensesni1 i Java med JavaFX INF1010 Stein Michael Storleer GUI-rammeverk i java Awt Swing JavaFX JavaFX er et svært rammeverk med mange, mange klasser JavaFX er et svært rammeverk
GUI. Grafisk brukergrensesni0 i Java med JavaFX. INF1010 Stein Michael Storleer
GUI Grafisk brukergrensesni0 i Java med JavaFX INF1010 Stein Michael Storleer GUI-rammeverk i java Awt Swing JavaFX awt JavaFX er et svært rammeverk med mange, mange klasser Vi kan bare dekke en liten
Steg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse
Hello world Skrevet av: Hallvard Trætteberg Kurs: Javafx Introduksjon Formålet til denne leksjonen er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal
Steg 1: Opprette app-pakke, app-klasse og FXML-fil
Logo med FXML Introduksjon En viktig del av det å lage app-er er å utforme skjerminnholdet, dvs. alt app-en inneholder av grafikk, knapper, lister, osv. Formålet til denne leksjonen er å lære hvordan du
Kalkulator-leksjonen (nesten ferdig)
Kalkulator-leksjonen (nesten ferdig) Introduksjon I denne leksjonen vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Steg 1: Opprette app-pakke, app-klasse,
Steg 1: Sette opp Java-prosjekt, og lage appmappe
Hello world Introduksjon Formålet til denne leksjonen er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal du lære litt om sammenhengen mellom JavaFX-koden
Kapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
Oppsummering del 2. Læringsmål Viktigste Java-elementer Eksamen Til sist. Læringsmål Hovedpunkter Tilbakemelding Eksamen. IN1010 uke 17 våren 2019
Oppsummering del 2 Læringsmål Viktigste Java-elementer Eksamen Til sist Hva skal dere ha lært? Læringsmål fra emnebeskrivelsen: Etter å ha tatt IN1010: har du god oversikt over programmeringsspråket Java
INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1
INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt del 1 1 Hvordan lage et vindu på skjermen 2 Hvordan legge inn enkle elementer i vinduet 3 Hvordan lage et vindu med et sudokuspill 4 Hvordan lage en
Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon
Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og
Introduksjon til Eclipse
Introduksjon til Eclipse Andreas Limyr 18-Jan-05 INF2120 Prosjekt i modellering 1 Oversikt over denne forelesningen Generell introduksjon til Eclipse Bruk av Eclipse ved Java-programmering Plug-ins til
Grafiske brukergrensesnitt med Swing og AWT
Grafiske brukergrensesnitt med Swing og AWT - 1 av 11 INNHOLD INTRODUKSJON 3 VINDUER, RAMMER OG PANELER. 4 KOMPONENTER OG VINDUSELEMENTER 6 KNAPPER OG KNAPPELYTTERE.. 8 LAYOUT.. 10 APPENDIX. 11 2 av 11
INF1000 - Løsning på seminaropppgaver til uke 8
INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
Java PRP brukermanual
Java PRP brukermanual 1.1 Introduksjon 1.1.1 Hva er Java PRP Java PRP (Parallel Recursive Procedure) gir oss muligheten til automatisk parallellisering av programmer, som baserer seg på noen rekursive
INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010
Grafisk brukergrensesni3 med Swing og awt del 1 GUI (Graphical User Interface)- programmering Hvordan lage et vindu på skjermen Hvordan legge ulike komponenter i vinduet (trykknapper, tekseelter, tekst,
Inf109 Programmering for realister Uke 5. I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse.
Inf109 Programmering for realister Uke 5 I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse. Før du starter må du kopiere filen graphics.py fra http://www.ii.uib.no/~matthew/inf1092014
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer
GUI 3 JavaFX Mer interaksjon Hvordan gi input :l programmet INF1010 Stein Michael Storleer Innhold 1. Ta opp tråden fra sist 2. Input med TextField 3. Anonyme klasser 4. Lytte på alle noder i et grid 5.
Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
Jentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren [email protected] 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
Qt Jambi E t R ammeverks His torie
Qt Jambi E t R ammeverks His torie Hvem er jeg? Eskil Abrahamsen Blomfeldt Hovedfag i informatikk fra Blindern Spesialisering i programmeringsspråk og kompilatorteori Utvikler i Trolltech siden 2005 Vedlikehold
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)
INF1010 våren 2019 Onsdag 30. januar Mer om unntak i Java (med litt repetisjon av I/O først) Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type:
Forelesning inf Java 1
Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems
Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket
Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke
TOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
Enkel lesing og skriving i Java
Enkel lesing og skriving i Java Dag Langmyhr [email protected] 11. januar 2019 Innhold 1 Skriving 1 1.1 Skriving til fil...................................... 3 2 Lesing 4 2.1 Lesing fra fil.......................................
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.
IN Notat om I/O i Java
IN1010 - Notat om I/O i Java Mathias J.P. Stang, Tuva Kristine Thoresen, Ingrid Grønlie Guren 17. januar 2018 Dette notatet handler om I/O (input/output) i Java, og tar for seg innlesning fra terminal,
INF Notat om I/O i Java
INF1000 - Notat om I/O i Java Tuva Kristine Thoresen, Ingrid Grønlie Guren [email protected], [email protected] 22. oktober 2014 Dette notatet handler om I/O (input/output) i Java, og tar for seg
Repitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ
INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint
Operativsystemer og grensesnitt
Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveksamen i INF1010 Objektorientert programmering Dato: 26. mai 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider.
EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.
EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 31.05.2016 Tid: 4 timer (9-13) Målform: Sidetall: Hjelpemidler: Merknader: Bokmål 5 (inkludert denne) Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig
23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr
Fakultet Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet Den
Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr
Fakultet Bredde Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet
Introduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:
Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering
1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr
Nyttige Linux-kommandoer Hvordan du kan jobbe mer effektivt Dag Langmyhr Trenger vi kommandovinduer i dag? Svaret er nei for de fleste brukerne, men ikke for ekspertene. Ofte går det fortere å bruke kommandoer
Dagens tema Kapittel 8: Objekter og klasser
Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable
INF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
Argumenter fra kommandolinjen
Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene
AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE
AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO325E Faglig veileder: G.Milvang og H.Hemmer Gruppe(r): 2EA,2EB,2EC Dato:12.12.03 Eksamenstid:9 00-14 00 Eksamensoppgaven
OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
Seminaroppgaver IN1010, uke 2
Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en
Komme igang med App Inventor Introduksjon App Inventor PDF
Komme igang med App Inventor Introduksjon App Inventor PDF Introduksjon Dette er en introduksjon til MIT App Inventor, hvor du skal lære å lage applikasjoner til Android. Å lage apps i App Inventor er
1. NetBeans IDE: Lage en enkel mobilapplikasjon
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering
Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING
Høgskolen i Telemark EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING 02.12.2013 Tid: Målform: Sidetall: Hjelpemidler: Merknader: 9-13 for eksamen i 6102 (7.5 studiepoeng)
INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med
Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering
Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at
INF1000: Forelesning 6. Klasser og objekter del 1
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK 2 Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer navn, brukernavn og telefonnummer.
Enkel app-programmering med JavaFX og FXML
Enkel app-programmering med JavaFX og FXML JavaFX er Java sitt nye rammeverk for å lage og beskrive grafiske brukergrensesnitt (GUI). Her gir vi en kort introduksjon til å lage enkle GUI med JavaFX vha.
Programmeringsspråket C
Programmeringsspråket C Programmeringsspråket C Laget til implementasjon av Unix ved AT&Ts Bell labs i Palo Alto 1969 73. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard
Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:
INF1010 2015 Obligatorisk oppgave 9, 10 og 11 SUDOKU Versjon 26. mars. Ved behov for presiseringer i del 10 og 11, kan det komme ny versjon 16. april, men ingen endringer i selve oppgaven. Denne obligatoriske
Eksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
INF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
Utplukk av Java (GUI, kode-konvensjon, Java og bildebehandling i J2SE. BufferedImage m/venner. polymorfisme, classpath, javadoc) UNIVERSITETET I OSLO
Java i INF 160 INSTITUTT FOR INFORMATIKK SVEIN BØE 1 GUI med Swing import java.awt.*; import javax.swing.*; public class GUI { public static main(string[] args) { JFrame frame = new JFrame("window title");
Post-it spørsmål fra timen (Arv og subklasser)
Post-it spørsmål fra timen 30.01 (Arv og subklasser) Tegning Spørsmål: Skjønte ikke tegningene Hater tegningene. Lær meg å tegne. Mvh frustrert elev. Spørsmål: Datastruktur-tegning, og hvor mye detaljer
Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
Leksjon 7. Filer og unntak
6108 Programmering i Java Leksjon 7 Filer og unntak Del2: 7.2 og 7.4 Roy M. Istad 2015 Fil: Permanent lagring av data PrintWriter(filnavn) throws Exception usjekkede/sjekkede unntak? skriver.println(data-i-tekstlinje)
Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering
Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep
1 t:n'v'\ekode LO325E. Alle ~vne og trykte. GOd'"j(jent kalkulator
1 t:n'v'\ekode j Emne: 11nformatiklc Il LO325E I Faglig veileder Hilde Hemmer 1 Gruppe(r) I DOtO:14~1~ E ksamenstld 900-1400 I Eksamen~pgaven består av: Antall sider (Inkl forsiden og vedlegg):6 Antal
Mer objektorientert programmering
Mer objektorientert programmering Klasser og objekter En klasse med konstruktør og en array Innkapsling En klasse med datafil og kommandoløkke Klassen ArrayList Hva er hva? Klasser og objekter Det er viktig
INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:
Sudokubrettet Et sudokubrett består av n n ruter. Vi bruker følgende begreper i oppgaven:
INF1010 2016 Innleveringsoppgave 8 SUDOKU Versjon 29. mars. Denne versjonen gjelder oppgave 8. Resten er tatt med bare for å gi en pekepinn om arbeidet videre. Det kommer andre krav til del 10 og 11 når
programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"
Enkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
