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



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

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

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

Kalkulator-leksjonen (nesten ferdig)

Enkel app-programmering med JavaFX og FXML

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

1. NetBeans IDE: Lage en enkel mobilapplikasjon

Argumenter fra kommandolinjen

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

Hei verden Introduksjon Swift PDF

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface»)

En kort introduksjon til JavaFX

King Kong Erfaren Scratch PDF

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Komme igang med App Inventor Introduksjon App Inventor PDF

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

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

GUI («Graphical User Interface») del 2

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

GUI («Graphical User Interface»)

Introduksjon til Eclipse

Tegneprogram Journeyman Scratch PDF

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

Hvor i All Verden? Del 2 Erfaren Scratch PDF

Digital 2d-tegning og vinylkutting

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

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

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

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

Kanter, kanter, mange mangekanter

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

Bildebehandling i GIMP

Steg 1: Katten og fotballbanen

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.

Steg 1: Hvordan styre figurer med piltastene

Tegnespillet. Introduksjon:

Straffespark Introduksjon Scratch Lærerveiledning

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Skrevet av: Geir Arne Hjelle

Forberedelser: Last ned bildefiler

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Scratch. Skrevet av: Geir Arne Hjelle

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

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

Sprettende ball Introduksjon Processing PDF

Start med å åpne programmet ved å trykke på ikonet GIMP 2 på skjermen eller under startmenyen.

Gå inn på nedtrekksmenyen View og klikk deretter på Toolbars. Merk av de verktøyene som vises på bilde under.

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

Lage nettside med squrespace

Steg 1: Hente grafikk fra nettet

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

1) Sørg for at du fortsatt er i eventredigeringsmodus (klikk F6 på tastaturet, eller velg ikonet med en person fra menylinjen).

Halloweenimasjon Introduksjon Scratch PDF

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

Løpende strekmann Erfaren Videregående Python PDF

Oppgave nøkkelskilt August 2016

Mattespill Nybegynner Python PDF

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

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

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

Situasjonskart. Den øverste tomta (51/29) skal brukes i dette heftet.

1 Kodegenerering fra Tau Suiten

Avinstallere Java: Windows 7 og eldre versjoner

Hvordan redigere bilder i pixlr.com

Snake Expert Scratch PDF

Verden. Steg 1: Vinduet. Introduksjon

Begge metodene har som utgangspunkt at du har lagt inn et ortofoto av feltet eller en skannet tegning i Intrasisprosjektet eller ArcMap-fila.

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

HR analysen. Ny versjon Brukermal. Administratorer

Steg 1: Piler og knappetrykk

Finn en partner å prøve spillet sammen med. Det er OK å være tre personer og bytte på hvilke to som spiller.

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

Skilpaddetekst. Steg 1: Tekst på flere linjer. Sjekkliste. Introduksjon

Munik sin hjemmeside BRUKERMANUAL LITAL ROZENTAL-EIDE

AUTOCAD Artikkelserie. Fra Color til Named og omvendt

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.

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

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

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

WordPress.com: Enkel bruksanvisning for blogging

Communicate SymWriter: R5. Brett og knapper

HBF Drammen 2014 Tips og triks 1. Innhold... Side. Tips og triks

Steg 1: Hvordan fungerer spillet?

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

trinn! Instruksjon For Windows 7.4 og nyere versjoner.

Installasjon av Mediasite Desktop Recorder

Steg 1: Vi starter fra toppen

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

38. Utskrift - Master Layout

Hvordan installere Java og easyio på Windows

Oppgavesett videregående kurs i NVivo 9

Kom i gang med emedia

Kodetime for Nordstrand barneskole

Dette eksemplet forutsetter at du allerede har gjennomgått Kom i gang med tavler 1.

Steg 1: Opprette spillskjerm

PUBLISERING AV INNHOLD TIL KVAMSSIDA.NO

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

Lage klubbens webside i Rotary med verktøyet Webwiz 2.0

Steg 1: En første animasjon

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

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

Transkript:

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 kan bruke FXML for å lage skjerminnhold, og to måter å lage slikt innhold. I tillegg skal du lære hvordan du får app-en til å last inn og vise frem innholdet i FXML-filer. App-en er ikke så komplisert, den skal bare vise frem logoene til Kodeklubben og NTNU (eller andre logoer, hvis du ønsker det): Kodeklubben NTNU I leksjonen Hello world lærte du om hvordan du kan lage en app som viste et vindu med et tekst-objekt (av type Text). Da skrev du Java-kode som laget tekst-objektet, satte grafiske egenskaper for tekst-objektet og la det til app-vinduet. Slik kode kan fort bli lang og uoversiktlig, og det kan være vanskelig å skrive kode som har ønsket effekt og se for seg hvordan skjerminnholdet vil bli seende ut. For å gjøre arbeidet med skjerminnhold enklere, så finnes det en egen kode-type kalt FXML for å lage skjerminnhold. FXML ligner på HTML ved at det bruker XML-elementer, f.eks. <Text...>... </Text> og attributter, f.eks. fill="blue" for å beskrive innholdet. Når en skal lage FXML-filer, kan en enten redigere FXML som tekst i en egen FXML-editor eller bruke en egen tegne-app som leser og skriver FXML-filer. Vi skal se på begge disse teknikkene i denne leksjonen. Steg 1: Opprette app-pakke, app-klasse og FXML-fil Lag først en ny app-pakke og app-klasse som forklart i Hello world-leksjonen. Bruk fxmllogo som navn på pakken og FxmlLogoApp som navn på app-klassen. Høyreklikk på fxmllogo-pakken og velg New > Other... så du får opp en liste med såkalte veivisere (eng: wizards). Vi skal bruke den som heter New FXML Document. Det enkleste er å skrive inn fx i søkefeltet, for å snevre inn utvalget: Trykk Next for å velge veiviseren. Du vil da få opp følgende skjema:

Fyll inn FxmlLogoApp og trykk Finish. Du vil da få opp en FXML-editor med den nye FXML-fila: Denne FXML-en gir bare et tomt panel (av typen AnchorPane), så for å få noe å jobbe med, så trenger vi Rediger teksten slik at den blir som følger: <AnchorPane xmlns:fx="http://javafx.com/fxml/1" prefwidth="500" prefheight="400"> <Rectangle layoutx="100" layouty="20" width="80" height="80" fill="black" arcwidth="25" archeight="25" /> <Text layoutx="140" layouty="60" text="k" fill="white"> <font> <Font name="courier" size="72"/> </font> </Text> <Circle layoutx="150" layouty="150" radius="40" fill="blue"/> <Text layoutx="10" layouty="120" text="ntnu"> <font> <Font name="arial" size="36"/> </font> </Text> </AnchorPane> FXML-editoren har samme type kode-komplettering som Java-editoren. Når du f.eks. har skrevet inn <Rect, kan du trykk ctrl-mellomrom og editoren vil både fylle ut resten av Rectangle-navnet og legge til en import-setning øverst i fila (tilsvarende import-setningen i Java): <?import javafx.scene.shape.rectangle?> (Hvis du ikke bruker kode-kompletteringsfunksjonen, så må du skrive inn import-setningen selv.) Tilsvarende kan du bruke kode-komplettering på attributt-navnene layoutx, layouty, width, height, fill osv. Mens du redigerer FXML-koden, så kan det være kjekt å se hvordan innholdet vil bli seende ut, når det lastes inn og vises frem. Eclipse har et eget panel kalt JavaFX preview som hele tiden laster inn FXML-koden du redigerer og viser frem innholdet. Dette åpnes ved å velge Window > Show View... og så finne panelet i lista. Bruk søkefeltet for å filtrere lista (skriv pre, så panelet blir enklere å finne.

Som du ser så inneholder FXML-fila allerede mange av de grafiske elementene som trengs for å lage begge logoene, men ikke alle. Din jobb blir å justere på FXML-koden, så logoene blir omtrent som vist øverst i denne leksjonen. Litt om FXML Du har kanskje kjent igjen mange av ordene i FXML-fila fra Java-koden du skrev i Hello world-leksjonen, og det er ikke tilfeldig. Enkelt sagt så tilsvarer elementnavnene i FXML-koden (ordet etter < og </ ), f.eks. Text og Rectangle Java-klasser, og attributtnavnene tilsvarer egenskaper, f.eks. layoutx, width og fill. Det er også noen elementnavn som tilsvarer egenskaper, f.eks. font. Når FXML-koden blir lest inn, så vil hvert element som tilsvarer en Java-klasse bli til en instans (et Java-objekt) av den klassen, og hvert attributt bli brukt til å sette en egenskap, som om en brukte tilsvarende set-metode. Følgende Java- og FXML-kode betyr omtrent det samme: Circle circle = new Circle(); circle.setlayoutx(150); circle.setlayouty(150); circle.setradius(40); circle.setfill(color.blue); <Circle layoutx="150" layouty="150" radius="40" fill="blue"/> Noen typer objekter, f.eks. paneler (typene Pane, HBox, VBox og AnchorPane), inneholder andre objekter. I Java-koden må en legge den ene til children-lista til den andre, mens en i FXML legger det ene elementet inni det andre: Pane pane = new Pane(); Circle circle = new Circle();... pane.getchildren().add(circle); <Pane> <Circle layoutx="150" layouty="150" radius="40" fill="blue"/> </Pane>

Steg 2: Åpne og redigere FXML-fil med SceneBuilder Det går greit å bruke FXML-editoren for enkel redigering (eller mer kompliserte ting, når en får erfaring), men det finnes et enklere alternativ, nemlig en grafisk editor kalt SceneBuilder. En kan faktisk åpne og redigere FXML-fila direkte i JavaFX Scene Builder (ofte bare kalt SceneBuilder), siden den bruker FXML som lagringsformat. Høyreklikk på FXML-fila og velg Open with SceneBuilder Hvis du har installer SceneBuilder riktig, så skal du etter litt venting få opp følgende Som du ser så inneholder panelet i midten de samme grafiske elementene som JavaFX Preview-panelet. Her kan du imidlertid redigere på dem, ved å velge, dra og slippe, som i vanlige tegneprogrammer. Nederst til venstre ser du trestrukturen av objekter, med et panel (AnchorPane) som inneholder et rektangel (Rectangle), en sirkel (Circle) og to tekst-objekter (Text). Øverst til venstre ser du en kategorisert liste med elementer som kan dras og slippes inn i redigeringspanelet i midten. I figuren vises bare såkalte Containers, som inneholder andre elementer, men (hvis du scroller) lenger ned finner du bl.a. Controls (interaktive elementer) og Shapes (grafiske elementer). Prøv å finne Line-typen og dra og slipp den litt til høyre for det svarte rektangelet. Hvis du vil endre på hvordan streken ser ut, så kan du redigere ulike egenskaper i panelet til høyre. Prøv f.eks. å gjøre streken tykkere (Stroke Width = 10), endre fargen til grønn (Stroke = #569900) og enden til avrundet (Stroke Line Cap = ROUND). Da skal det se omtrent slik ut:

Dette er omtrent de grafiske elementen du trenger for å lage Kodeklubben- og NTNU-logoene. Prøv å bruke redigeringsmulighetene til å få tegningen til å bli seende omtrent slik ut: Her er noen tips om nyttige redigeringsfunksjoner som du kan bruke for å få laget og redigert grafikken: Du kan raskt lage en kopi (duplisere) et element med Edit > Duplicate Du kan runde av hjørnene på et rektangel ved å endre Arc Height og Arc Width Når du klikker på Stroke- og Fill-egenskapene, så kommer det opp et nytt vindu med mulighet til å velge farge på flere måter (se under til venstre) Tilsvarende kan du stille inn navn og størrelsen på font-en til tekst-objekter ved å klikke på Font-egenskapen (se under til høyre) Valg av farge Valg av font

Valg av farge Valg av font Spesielt fin-innstillingen av plassering og dimensjoner kan være vanskelig. Nede til høyre i SceneBuilder-vinduet finner du egenskaper med kategorien Layout, bl.a. koordinater og størrelse. Akkurat hvilke egenskaper du kan endre avhenger av hvilket grafisk element som er valgt. I figuren under ser du hva som kan endre på et rektangel. Layout-egenskaper Det er egentlig disse egenskapene du endrer, når du velger, drar og slipper de grafiske elementene og de små hjørne-boksene. Ved å redigere tallene, så kan du styre dem helt presist. Steg 3: Få appen til å vise frem innholdet i FXML-fila Det siste trinnet i denne leksjonen er å få app-en til å vise frem det grafiske innholdet i app-vinduet. For å få dette til må du redigere koden i app-klassen din, som du laget i trinn én og heter FxmlLogoApp. Husk å lagre FXML-fila i SceneBuilder før du går tilbake til Eclipse. Klikk i FXML-editoren. Den skal da vise frem det nye innholdet, som er resultatet av all redigeringen du gjorde i SceneBuilder. Det er greit å gjøre endringer rett i FXML-koden i editor. Når du går tilbake til SceneBuilder, så sjekk om du ser de samme endringene der. Hvis ikke så må du kanskje lukke den og åpne den igjen med Open with SceneBuilder. Velg editoren med FxmlLogoApp-klassen i (eller åpne den ved å dobbel-klikke på FxmlLogoApp.java) og rediger slik at du får følgende kode:

package fxmllogoapp; import java.io.ioexception; import javafx.application.application; import javafx.fxml.fxmlloader; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.stage.stage; public class FxmlLogoApp extends Application { public void start(stage primarystage) throws IOException { FXMLLoader fxmlloader = new FXMLLoader(FxmlLogoApp.class.getResource("FxmlLogoApp.fxml")); Pane root = fxmlloader.load(); primarystage.setscene(new Scene(root)); primarystage.show(); } } public static void main(string[] args) { launch(fxmllogoapp.class, args); } Trikset her er å lage et FXMLLoader-objekt (første linje i start-metoden, og be denne laste inn FXML-fila med loadmetoden (andre linje). Kjør app-en ved å høyre-klikke på fila eller i editoren og velge Run as > Java Application. Da skal det (etter litt venting) dukke opp et vindu som dette: Hva har du lært? lage en FXML-fil med Eclipse sin veiviser redigere FXML i Eclipse sin FXML-editor. se forhåndsvisning av FXML-innholdet i JavaFX Preview-panelet åpne FXML-fila i JavaFX Scene Builder med Open with SceneBuilder legge nye elementer til FXML-fila ved å dra og slippe fra SceneBuilder sin paletten redigere grafiske egenskaper i SceneBuilder skrive app-kode som laster inn og viser frem FXML-fila i et app-vindu I leksjonen KalkulatorFX (to be continued) vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Lisens: CC BY-SA 4.0