Steg 1: Sette opp Java-prosjekt, og lage appmappe



Like dokumenter
Steg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse

Steg 1: Opprette app-pakke, app-klasse og FXML-fil

Logo med FXML. Introduksjon. Skrevet av: Hallvard Trætteberg

Kalkulator-leksjonen (nesten ferdig)

1. NetBeans IDE: Lage en enkel mobilapplikasjon

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface») del 2

Java fra Eclipse til Evalanche

GUI («Graphical User Interface»)

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Hei verden Introduksjon Swift PDF

Kanter, kanter, mange mangekanter

Sprettende ball Introduksjon Processing PDF

Bygge en kube. Steg 1: Lage en ny mod. Sjekkliste. Introduksjon

GUI («Graphical User Interface»)

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

2 Om statiske variable/konstanter og statiske metoder.

Straffespark Introduksjon Scratch Lærerveiledning

Bygge en kube. Introduksjon. Steg 1: Lage en ny mod. Skrevet av: Pål G. Solheim

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Snake Expert Scratch PDF

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

INF1000 Metoder. Marit Nybakken 16. februar 2004

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Argumenter fra kommandolinjen

Mattespill Nybegynner Python PDF

En kort introduksjon til JavaFX

"Dette skjer når jeg trykker på denne knappen" "Når jeg skriver i dette feltet, ser jeg at det andre forandrer seg"

Hei verden. Introduksjon. Steg 1: Sette opp Xcode. Skrevet av: Andreas Amundsen

King Kong Erfaren Scratch PDF

Hvor i All Verden? Del 2 Erfaren Scratch PDF

GUI 1. Grafisk brukergrensesni1 i Java med JavaFX. INF1010 Stein Michael Storleer

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8

Pong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon

Enkel app-programmering med JavaFX og FXML

Memoz brukerveiledning

Tegneprogram Journeyman Scratch PDF

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

UNIVERSITETET I OSLO

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Gangemesteren Nybegynner Scratch PDF

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Komme igang med App Inventor Introduksjon App Inventor PDF

Introduksjon til Eclipse

Løpende strekmann Erfaren Videregående Python PDF

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

Kan micro:biten vår brukes som et termometer? Ja, den har faktisk en temperatursensor!

Snurrige figurer. Steg 1: En snurrig figur. Sjekkliste. Introduksjon

Spøkelsesjakten. Steg 1: Lag et flyvende spøkelse. Sjekkliste. Introduksjon

Hvor i All Verden? Del 3. Introduksjon. Steg 0: Forrige gang. Sjekkliste. Skrevet av: Geir Arne Hjelle

Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF

Eksport og innsending

Steg 1: Katten og fotballbanen

Steg 1: Streken. Steg 2: En hoppende helt. Sjekkliste. Sjekkliste. Introduksjon. Hei der! Hoppehelt

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon

La oss begynne enkelt. Vi vil først se hvordan vi kan flytte og snurre på en figur.

Verden. Steg 1: Vinduet. Introduksjon

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Veileder i bruk av GoodReader

Hvordan å lage og publisere ditt personlige visittkort

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Hvordan installere Java og easyio på Windows

Klask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon

Felix og Herbert Introduksjon Scratch PDF

Http- og WebServices funksjoner

Hvor i All Verden? Del 1. Introduksjon. Steg 1: Styr et helikopter. Skrevet av: Geir Arne Hjelle

Sprettball Erfaren ComputerCraft PDF

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS

Robotinvasjon Introduksjon ComputerCraft PDF

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Mål med kurset. Java i INF Dagens tema. GUI med Swing. Dokumentasjon

Sprettende ball. Introduksjon: Steg 1: Vindu. Sjekkliste. Skrevet av: Sigmund Hansen

GUI. Grafisk brukergrensesni0 i Java med JavaFX. INF1010 Stein Michael Storleer

Farger Introduksjon Processing PDF

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

Bygge en pyramide. Steg 1: Lage en ny mod. Sjekkliste. Introduksjon

Skilpaddekunst. Steg 1: Møt skilpadden. Sjekkliste. Introduksjon. Turtles

Bygge en pyramide. Introduksjon. Steg 1: Lage en ny mod. Sjekkliste. Skrevet av: Pål G. Solheim

Soloball. Introduksjon. Steg 1: En roterende katt. Sjekkliste. Skrevet av: Geir Arne Hjelle

Forberedelser: Last ned bildefiler

Enarmet banditt Nybegynner Scratch Lærerveiledning

Oblig 4Hybelhus litt mer tips enn i oppgaven

Hendelser Apprentice ComputerCraft PDF

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Klask-en-Muldvarp. Introduksjon. Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (

La oss begynne enkelt. Vi vil først se hvordan vi kan flytte og snurre på en figur.

Hva er TegnBehandler?

I denne oppgaven skal du lære hvordan du kan flytte rundt på elementer og gjemme elementene bak andre elementer ved hjelp av CSS.

Før du starter, del 2

2 Om statiske variable/konstanter og statiske metoder.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

Installere JBuilder Foundation i Windows XP

INF Uke 10. Ukesoppgaver oktober 2012

Transkript:

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 og innholdet i app-vindeuet en får opp. Steg 1: Sette opp Java-prosjekt, og lage appmappe og app-klasse Eclipse strukturerer koden i såkalt prosjekter. Vanligvis har en ett Java-prosjekt for hver app en lager, men hvis en for det meste lager små app-er, så er det greit å samle dem i ett Java-prosjekt. Da blir det mindre arbeid med oppsett. Et prosjekt er enkelt sagt en mappe med innhold/oppsett tilpasset typen app en skal lage. Først og fremst handler det om å velge programmeringsspråk, så når du skal lage en ny app med JavaFX, så må du lage et Java-prosjekt. Du vil da få en mappe med flere under-mapper, og en av disse heter src og vil inneholde all koden din. For at de ikke skal bli for uoversiktlig, spesielt hvis du har flere app-er i samme prosjekt, så bør du så lage en Java-mappe for app-en din. Når det er gjort så kan lage Javafilen for app-en din! Sjekkliste Lag et nytt Java-prosjekt ved å velge File > New > Java Project (altså New > Java Project fra File -menyen). Du vil da få opp et skjema hvor du bl.a. kan fylle inn navnet på prosjektet. Skriv kodeklubben eller et annet passende navn. Merk at du bør holde deg til de engelske bokstavene a-z og A-Z, ellers får du lett problemer siden. De andre innstillingene lar du være. I Package Explorer -panelet vil du se at det dukker opp en mappe med navnet du valgte. Inne mappa vil du ha en src -

mappe og en mappe som heter JRE System Library [JavaSE-1.8]. src -mappe er der du legger koden din, mens JRE System Library [JavaSE-1.8] viser at prosjektet er satt for å bruke Java 8, som vi trenger for å bruke JavaFX. Skjermutklippet under viser omtrent hvordan det vil bli seende ut. Lag en ny Java-mappe for app-en i denne leksjonen. Java kaller slike mapper for pakker, men du kan tenke på dem som mapper. Pass først på at du har valgt (klikket på) riktig Java-prosjekt i Package Exporer -panelet. Velg så File > New > Package eller ikonet som ser ut som en pakke med et pluss-tegn i hjørnet. Alternativt kan du høyre-klikke på srcmappa og velge New > Package. Du vil da få opp et skjema hvor du kan skrive inn hvilken kode-mappe ( Source Folder ) som pakken skal puttes i og pakke-navnet. Kode-mappen skal være kodeklubben/src (eller prosjektnavnet du skrev inn tidligere etterfulgt av /src. Pakkenavn inneholder som regel bare små bokstaver, altså bokstaven a-z. Derfor kan du kalle mappa helloworld. Skjermutklippet under viser omtrent hvordan det vil bli seende ut. Lag en ny Java-klasse (Java-filer kalles klasser) ved å høyre-klikke på helloworld -pakka du nettopp lagde og velge New > Class.

Du vil da få opp et skjema hvor kode-mappa og pakken allerede er fylt inn, mens navnet ( Name ) må fylles inn. Klassenavn starter alltid med stor forbokstav, og hvert delord som navnet består av, begynner også med stor forbokstav. Så når vi nå skal lage en app vi kaller Hello World-app, så blir navnet klassenavnet HelloWorldApp. Skjermutklippet under viser omtrent hvordan det vil bli seende ut.

Steg 2: Skrive og kjøre HelloWorldAppklassen En Hello World-app er ment å være den enkleste app-en en kan tenke seg som viser Hello World på skjermen. F.eks. slik som dette: En slik app må inneholde følgende elementer: Den må bygge på Application -klassen (i pakken javafx.application ) ved at du skriver extends Application i klassedefinisjonen. Uten det, er klassen rett og slett ikke en app-klasse. Den må inneholde en metode (Java-funksjoner kalles metoder) kalt start som lager og putter skjermbilde-elementene inn i app-vinduet (som den får som argument). Den kan inneholde en init -metode som typisk brukes for å initialisere variabler i app-en. Koden under har ikke en slik metode. Oppstartsfunksjonen main, som kjøres når klassen din startes som et program, må kalle launch -metoden med klassen din som argument. Når du kjører koden vil følgende skje: App-en din vil bli laget. App-en vil være et HelloWorldApp- objekt, også kalt en instans av HelloWorldApp-klassen. init -metoden vil bli kalt (hvis du har en, og det har ikke koden vår) App-vinduet vil bli laget (automatisk av JavaFX, ikke av vår kode) start-metoden blir kalt med app-vinduet som argument (det er derfor det står (Stage primarystage) bak startnavnet) Her er den nødvendige koden, med kommentarer:

// klassen ligger i pakken helloworld, og // det må stemme med package-deklarasjonen package helloworld; // med en import-setning, så slipper en å skrive hele navnet på klassene vi bruker // vi har like godt en import-setning for hver av klassene vi bruker import javafx.application.application; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.scene.text.font; import javafx.scene.text.text; import javafx.stage.stage; // bygg på Application-klassen med extends // det er det som gjør at vår klasse kan fungere som en JavaFX-app public class HelloWorldApp extends Application { // her er metoden som kalles med app-vinduet // den tar inn app-vinduet som argument public void start(stage primarystage) { // vi lager oss det grafiske tekst-objektet, av typen Text Text helloworldtext = new Text("Hello world"); // så sier vi hvor i vindet den skal plasseres, x- og y-posisjon helloworldtext.setlayoutx(10); helloworldtext.setlayouty(50); // vi lager oss et font-objekt, av typen Font Font font = Font.font("Arial", 36); // og setter den som teksten font helloworldtext.setfont(font); // vi mnå også lage et panel, av typen Pane Pane root = new Pane(); // vi setter ønsket størrelse, bredde og høyde root.setprefwidth(300); root.setprefheight(200); // og putter teksten inni root.getchildren().add(helloworldtext); } // til slutt legges panelet inn i app-vinduet primarystage.setscene(new Scene(root)); // og vises frem primarystage.show(); } // dette er den egentlig oppstartsmetoden public static void main(string[] args) { // kall den innebygde funksjonen launch, med app-klassen vår som argument launch(helloworldapp.class, args); } Sjekkliste Skriv inn koden over, ved å kopiere og lime inn linjene i din egen HelloWorldApp.java-fil. Legg merke til at ulike ord får ulik farge. Innebygde Java-nøkkelord som package, class, extends og new blir lilla, variabler er brune, tekst-verdier er blå osv. Dette hjelper oss å skjønne hvordan Eclipse har forstått koden. Hvis mye av koden plutselig blir blå, så har vi kanskje glemt en " som avslutter en tekst-verdi. Kjør koden ved å høyreklikke på fila eller i editoren og velge Run as > Java Application. Du skal da få opp følgende vindu:

Lek litt med koden over. Prøv f.eks. å endre verdiene som styrer teksten ( new Text(...) ), plassering ( setlayoutx(...) og setlayouty(...) ), skriftstypen ( Font.font(...) ), og vindusstørrelsen ( setprefwidth(...) og setprefheight(...) ): Skriv inn en annen tekst, f.eks. navnet ditt. Endre posisjonen slik at teksten kommer lenger ned og til høyre ved å øke layoutx - og layouty -verdiene. Finn en annen skriftstype du liker og se hva som skjer når du velger en kjempestor font. Hva må du endre for å unngå at toppen av teksten kuttes? Velg en kjempestor font og skriv en laaaaang tekst. Øk vindusstørrelsen så hele teksten fortsatt vises. Deklarer en variabel windowheight med int windowheight =...; (bytt ut med et tall) og prøv å lage en formel som beregner y-posisjonen du setter med setlayoutx(...), slik at teksten havner pent i bunnen av vinduet. Legg merke til at det er ulike måter å sette ulike verdier på: Teksten settes direkte når en lager Text-objektet med new Text(...) De fleste verdier settes med egen metoder som begynner med set Skriftstypen settes også når den lages, men den lages med funksjonen ( Font.font(...) ) og ikke med new Font(...). Steg 3: Bruke kode-kompletteringsfunksjonen i Eclipse Eclipse inneholder mange nyttige funksjoner for å gjøre koding mer effektivt. Eclipse kjenner til alt Java har av muligheter, og kan både foreslå kode du kan skrive og rette enkle feil i koden. Eclipse holder rede på hvilke navn (på variabler, klasser og pakker) som gjelder hvor og kan foreslå alternativer basert på hva du har skrevet inn. Lag en ny linje under der skriftstypen settes med setfont(...). Skriv inn begynnelsen på variablen for Text-objektet f.eks. hello. Så holder du nede ctrl-tasten og trykker mellomrom. Eclipse vil da vise en liste over alle navn som begynner med hello: Her ser du at Eclipse foreslår et variabelnavn (helloworldtext), et pakkenavn (helloworld) og et klassenavn (HelloWorldApp). Hvis du velger helloworldtext, så legges denne teksten inn. Denne funksjonen kalles kode-komplettering (eng: code completion) og gjør det bl.a. greit å bruke lange navn på variabler, klasser og pakker. Eclipse vet hvilke verdier du kan sette for ulike typer grafiske objekter og kan hjelpe deg å skrive (og lære) dem. Skriv et punktum (. ) etter helloworldtext-navnet. Eclipse vil automatisk aktivere kode-kompletteringsfunksjonen og vise en liste over alle metodene til Text-objektet. Hvis du skriver inn setf så vil Eclipse begrense lista til metodene som begynner med nettopp setf:

Der finner du bl.a. setfill og setfont. fill og font kalles egenskaper (eng: properties) og i Java setter du slike egenskaper med metoder som har set foran egenskapsnavnet. Argument-typen viser hva slags verdi du må gi inn. F.eks. tar setfill et argument av typen Paint (egentlig javafx.scene.paint.paint). Velg setfill fra lista og skriv inn Color.BLUE. Igjen ser du at Eclipse foreslår navn tilsvarende det du har skrevet. Kjør app-en din igjen, så ser du effekten av kallet til setfill-metoden. Hva har du lært? lage nye Java-prosjekter med New > Java Project lage nye Java-pakker med New > Package lage nye Java-klasser med New > Class hva en klasse må ha av kode for å bli en app-klasse kjøre app-klassen som en Java-applikasjone hvordan plassere en tekst i et vindu hvordan endre verdier for plassering, skriftstype, farge og vindusstørrelse hvordan bruke kode-kompletteringsfunksjonen I leksjonen FXML-logo vil du lære hvordan lage skjerminnhold med FXML og tegne med JavaFX Scene Builder. Lisens: CC BY-SA 4.0