JavaFX. Denne artikel beskriver Java's nye GUI framework JavaFX. Den forudsætter et vist kendskab til Java og GUI udvikling.
|
|
|
- Torben Fischer
- 8 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk JavaFX Denne artikel beskriver Java's nye GUI framework JavaFX. Den forudsætter et vist kendskab til Java og GUI udvikling. Skrevet den 28. jul 2013 af arne_v I kategorien Programmering / Java Historie: V1.0-28/07/ original Hvad er JavaFX JavaFX er et nyt GUI framework til Java som skal erstatte Swing. Java version År GUI framework AWT Swing JavaFX Status JavaFX er standard i Java 8. JavaFX er bundlet med Java 7 siden update 6. For Java 6 og tidlige versioner af Java 7 kan man hente JavaFX som separat kit: Versioner JavaFX har en lidt broget historie. JavaFX 1.0 blev releaset tilbage i Men JavaFX 1.x er meget anderledes end den nuværende JavaFX 2.x. JavaFX 1.x bestod af et library og et helt nye sprog kaldet JavaFX Script. JavaFX Script var et meget spændende sprog med en syntax som kombinerede normal imperativ programmings logik med en deklarativ definering af GUI layout. JavaFX 2.0 blev releaset i 2011 og lavede om på meget. Librariet blev udvidet. JavaFX Script udgik. JavaFX kode skulle fremover udelukkende skrives i Java.
2 Et markup sprog til GUI layout FXML blev introduceret. JavaFX er versionen som er inkluderet i Java 7. Hvis nogen er interesseret i JavaFX Script så lever det videre i 2 open source sprog: * GitHub * Google Code Både SUN og Oracle har efter sigende brugt rigtigt mange millioner dollars på udviklingen af JavaFX. Filosofi Ideen i JavaFX 2.x er kopieret fra Adobe og Microsoft. Adobe Flex introducerede i 2004 separeringen i markup og kode for GUI apps (MXML og ActionScript). Microsoft kopierede ideen i 2006 med WPF (XAML og C#/VB.NET). Så JavaFX Script fra JavaFX 1.x med den originale mixede imperative/deklarative kode blev droppet og erstattet af: * FXML markup * Java kode For at gøre det nemt for traditionelle web udviklere at skifte til JavaFX GUI udvikling introducerede man at: * styling sker ved hjælp af CSS * kode også kan skrives i JavaScript JavaFX er et meget stort framework. Hvis man kigger på Java 8 distribution så ser man at jfxrt.jar med JavaFX fylder 18 MB og rt.jar med stort set resten af Java library fylder 63MB. Simple eksempler Jeg vill illustrere JavaFX mulighederne med en lille GUI applikation. Applikationen er banal og design inkl. valg farver er håbløs, men den har en passende kompleksitet til en demonstration. Først en "business logic" klasse som bruges af GUI. Calculator.java: public class Calculator { private double number; public void setnumber(double number) { this.number = number;
3 public double getsqrt() { return Math.sqrt(number); public double getlog() { return Math.log(number); public double getexp() { return Math.exp(number); Lad os starte med at vide en god gammeldags Swing GUI. SwingGUI.java: import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.swingutilities; import java.awt.color; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; public class SwingGUI extends JFrame { private Calculator data = new Calculator(); private JTextField number; private JLabel sqrt; private JLabel log; private JLabel exp; public SwingGUI() { setdefaultcloseoperation(jframe.exit_on_close); settitle("swing GUI"); getcontentpane().setlayout(new GridLayout(5, 2)); getcontentpane().setbackground(color.yellow); getcontentpane().add(new JLabel("Number")); number = new JTextField(); getcontentpane().add(number); getcontentpane().add(new JLabel("Square root")); sqrt = new JLabel(); sqrt.setforeground(color.blue); getcontentpane().add(sqrt); getcontentpane().add(new JLabel("Logarithm")); log = new JLabel(); log.setforeground(color.blue); getcontentpane().add(log); getcontentpane().add(new JLabel("Exponential")); exp = new JLabel();
4 exp.setforeground(color.blue); getcontentpane().add(exp); JButton calc = new JButton("Calculate"); calc.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { double x = Double.parseDouble(number.getText()); data.setnumber(x); sqrt.settext(double.tostring(data.getsqrt())); log.settext(double.tostring(data.getlog())); exp.settext(double.tostring(data.getexp())); ); calc.setbackground(color.red); getcontentpane().add(calc); pack(); SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame f = new SwingGUI(); f.setvisible(true); ); Det virker fint, men: * der er meget "overflødig" kode * GUI look & feel virker gammeldags Nu prøver vi at lave den samme kode i JavaFX uden brug af FXML. OldStyleJavaFX.java: import javafx.application.application; import javafx.scene.scene; import javafx.scene.control.button; import javafx.scene.control.label; import javafx.scene.control.textfield; import javafx.scene.layout.gridpane; import javafx.stage.stage; public class OldStyleJavaFXGUI extends Application { private Calculator data = new Calculator(); private TextField number; private Label sqrt; private Label log; private Label
5 public void start(stage stg) throws Exception { stg.settitle("old style JavaFX GUI"); GridPane pn = new GridPane(); pn.setstyle("-fx-background-color: yellow;"); number = new TextField(); pn.add(new Label("Number"), 0, 0); pn.add(number, 1, 0); pn.add(new Label("Square root"), 0, 1); sqrt = new Label(); sqrt.setstyle("-fx-text-fill: blue;"); pn.add(sqrt, 1, 1); pn.add(new Label("Logarithm"), 0, 2); log = new Label(); log.setstyle("-fx-text-fill: blue;\""); pn.add(log, 1, 2); pn.add(new Label("Exponential"), 0, 3); exp = new Label(""); exp.setstyle("-fx-text-fill: blue;\""); pn.add(exp, 1, 3); Button calc = new Button("Calculate"); calc.setstyle("-fx-background-color: red;"); calc.setonaction((e) -> { double x = Double.parseDouble(number.getText()); data.setnumber(x); sqrt.settext(double.tostring(data.getsqrt())); log.settext(double.tostring(data.getlog())); exp.settext(double.tostring(data.getexp())); ); pn.add(calc, 0, 4); Scene scn = new Scene(pn); stg.setscene(scn); stg.show(); Application.launch(OldStyleJavaFXGUI.class, args); Koden er en anelse pænere men ikke meget. GUI look & feel virker dog mere moderne. Nu prøver vi så at flytte layout og styling ud i FXML og CSS. TrueJavaFXGUI.java: import javafx.application.application; import javafx.fxml.fxml; import javafx.fxml.fxmlloader;
6 import javafx.scene.parent; import javafx.scene.scene; import javafx.scene.control.label; import javafx.scene.control.textfield; import javafx.stage.stage; public class TrueJavaFXGUI extends Application { private Calculator data = new private TextField private Label private Label private Label public void start(stage stg) throws Exception { stg.settitle("true JavaFX GUI"); Scene scn = new Scene((Parent) FXMLLoader.load(getClass().getResource("JavaFXGUI.fxml"))); scn.getstylesheets().add(getclass().getresource("javafxgui.css").tostring()); stg.setscene(scn); stg.show(); public void calcclick() { double x = Double.parseDouble(number.getText()); data.setnumber(x); sqrt.settext(double.tostring(data.getsqrt())); log.settext(double.tostring(data.getlog())); exp.settext(double.tostring(data.getexp())); Application.launch(TrueJavaFXGUI.class, args); JavaFXGUI.fxml: <?xml version="1.0" encoding="utf-8"?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <GridPane xmlns:fx=" fx:controller="demo.truejavafxgui"> <Label GridPane.columnIndex="0" GridPane.rowIndex="0" text="number"/> <TextField GridPane.columnIndex="1" GridPane.rowIndex="0" fx:id="number"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="1" text="square root"/>
7 <Label GridPane.columnIndex="1" GridPane.rowIndex="1" fx:id="sqrt"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="2" text="logarithm"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="log"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="3" text="exponential"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="3" fx:id="exp"/> <Button GridPane.columnIndex="0" GridPane.rowIndex="4" text="calculate" fx:id="calc" onaction="#calcclick" /> </GridPane> JavaFXGUI.css:.root { -fx-background-color: yellow;.button { -fx-background-color: red; #sqrt, #log, #exp { -fx-text-fill: blue; Og nu begynder det at ligne noget. Kode, layout og styling er klart adskilt. Hvis man vil kan man også flytte click event koden fra Java til JavaScript. Først inline i FXML'en. TrueJavaFXGUIwithJS.java: import javafx.application.application; import javafx.fxml.fxmlloader; import javafx.scene.parent; import javafx.scene.scene; import javafx.stage.stage; public class TrueJavaFXGUIwithJS extends Application { private Calculator data = new public void start(stage stg) throws Exception { stg.settitle("true JavaFX GUI with JavaScript"); Scene scn = new Scene((Parent) FXMLLoader.load(getClass().getResource("JavaFXGUIwithJS.fxml"))); scn.getstylesheets().add(getclass().getresource("javafxgui.css").tostring());
8 stg.setscene(scn); stg.show(); public Calculator getdata() { return data; Application.launch(TrueJavaFXGUIwithJS.class, args); JavaFXGUIwithJS.fxml: <?xml version="1.0" encoding="utf-8"?> <?language javascript?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <GridPane xmlns:fx=" fx:controller="demo.truejavafxguiwithjs"> <fx:script> function calcclick() { x = parsefloat(number.text); controller.data.number = x; sqrt.text = controller.data.sqrt.tostring(); log.text = controller.data.log.tostring(); exp.text = controller.data.exp.tostring(); </fx:script> <Label GridPane.columnIndex="0" GridPane.rowIndex="0" text="number"/> <TextField GridPane.columnIndex="1" GridPane.rowIndex="0" fx:id="number"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="1" text="square root"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="1" fx:id="sqrt"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="2" text="logarithm"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="log"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="3" text="exponential"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="3" fx:id="exp"/> <Button GridPane.columnIndex="0" GridPane.rowIndex="4" text="calculate" fx:id="calc" onaction="calcclick()" /> </GridPane> Så med ekstern JS fil. TrueJavaFXGUIwithExtJS.java:
9 import javafx.application.application; import javafx.fxml.fxmlloader; import javafx.scene.parent; import javafx.scene.scene; import javafx.stage.stage; public class TrueJavaFXGUIwithExtJS extends Application { private Calculator data = new public void start(stage stg) throws Exception { stg.settitle("true JavaFX GUI with external JavaScript"); Scene scn = new Scene((Parent) FXMLLoader.load(getClass().getResource("JavaFXGUIwithExtJS.fxml"))); scn.getstylesheets().add(getclass().getresource("javafxgui.css").tostring()); stg.setscene(scn); stg.show(); public Calculator getdata() { return data; Application.launch(TrueJavaFXGUIwithExtJS.class, args); JavaFXGUIwithExtJS.fxml: <?xml version="1.0" encoding="utf-8"?> <?language javascript?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <GridPane xmlns:fx=" fx:controller="demo.truejavafxguiwithjs"> <fx:script source="javafxgui.js"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="0" text="number"/> <TextField GridPane.columnIndex="1" GridPane.rowIndex="0" fx:id="number"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="1" text="square root"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="1" fx:id="sqrt"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="2" text="logarithm"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="log"/> <Label GridPane.columnIndex="0" GridPane.rowIndex="3" text="exponential"/> <Label GridPane.columnIndex="1" GridPane.rowIndex="3" fx:id="exp"/> <Button GridPane.columnIndex="0" GridPane.rowIndex="4" text="calculate" fx:id="calc" onaction="calcclick()" />
10 </GridPane> JavaFXGUI.js: function calcclick() { x = parsefloat(number.text); controller.data.number = x; sqrt.text = controller.data.sqrt.tostring(); log.text = controller.data.log.tostring(); exp.text = controller.data.exp.tostring(); Bemærk at JavaScript eksemplerne ikke virker i Java 8 early access. De virker i Java 7 og de bør også virke i Java 8 final version. Browser & medie JavaFX har en control for en embedded browser. Browser bygger på WebKit (samme som bruges af Chrome, iphone browser og Android browser). JavaFXBrowser.java: import javafx.application.application; import javafx.fxml.fxml; import javafx.fxml.fxmlloader; import javafx.scene.parent; import javafx.scene.scene; import javafx.scene.web.webview; import javafx.stage.stage; public class JavaFXBrowser extends Application private WebView public void start(stage stg) throws Exception { stg.settitle("javafx with embedded browser"); Scene scn = new Scene((Parent) FXMLLoader.load(getClass().getResource("JavaFXBrowser.fxml"))); stg.setscene(scn); stg.show(); public void eksperten() { brws.getengine().load(" public void google() { brws.getengine().load("
11 Application.launch(JavaFXBrowser.class, args); JavaFXBrowser.fxml: <?xml version="1.0" encoding="utf-8"?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.web.*?> <BorderPane xmlns:fx=" fx:controller="demo.javafxbrowser"> <center> <WebView fx:id="brws"/> </center> <bottom> <GridPane > <Button GridPane.columnIndex="0" GridPane.rowIndex="0" text="go to eksperten.dk" onaction="#eksperten" /> <Button GridPane.columnIndex="1" GridPane.rowIndex="0" text="go to Google" onaction="#google" /> </GridPane> </bottom> </BorderPane> JavaFX har en control for embedded media player. JavaFXPlayer.java: import javafx.application.application; import javafx.fxml.fxml; import javafx.fxml.fxmlloader; import javafx.scene.parent; import javafx.scene.scene; import javafx.scene.control.button; import javafx.scene.layout.borderpane; import javafx.scene.layout.gridpane; import javafx.scene.media.media; import javafx.scene.media.mediaplayer; import javafx.scene.media.mediaview; import javafx.stage.stage;
12 public class JavaFXPlayer extends Application private MediaView public void start(stage stg) throws Exception { stg.settitle("javafx with embedded player"); Scene scn = new Scene((Parent) FXMLLoader.load(getClass().getResource("JavaFXPlayer.fxml")), 800, 600); stg.setscene(scn); stg.show(); public void video() { media.setmediaplayer(new MediaPlayer(new Media("file:///c:/work/test.flv"))); media.setfitwidth(2*360); media.setfitheight(2*288); media.getmediaplayer().setautoplay(true); public void audio() { media.setmediaplayer(new MediaPlayer(new Media("file:///c:/work/test.mp3"))); media.getmediaplayer().setautoplay(true); Application.launch(JavaFXPlayer.class, args); JavaFXPlayer.fxml: <?xml version="1.0" encoding="utf-8"?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.media.*?> <BorderPane xmlns:fx=" fx:controller="demo.javafxplayer"> <center> <MediaView fx:id="media"/> </center> <bottom> <GridPane > <Button GridPane.columnIndex="0" GridPane.rowIndex="0" text="video sample" onaction="#video" /> <Button GridPane.columnIndex="1" GridPane.rowIndex="0" text="audio sample" onaction="#audio" /> </GridPane> </bottom> </BorderPane>
13 Bemærk at understøttede video og audio formater er ret begrænset. Swing & JavaFX Man kan bruge JavaFX komponenter i en Swing applikation. Men man kan ikke bruge Swing komponenter i en JavaFX applikation i JavaFX 2.x (man kunne i JavaFX 1.x og der går rygter om at Oracle vil indføre muligheden igen senere). MixedGUI.java: import javafx.application.platform; import javafx.embed.swing.jfxpanel; import javafx.scene.scene; import javafx.scene.control.button; import javafx.scene.control.label; import javafx.scene.layout.borderpane; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.swingutilities; import java.awt.borderlayout; import java.awt.dimension; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; public class MixedGUI extends JFrame { public MixedGUI() { setdefaultcloseoperation(jframe.exit_on_close); settitle("mixed GUI"); getcontentpane().setlayout(new GridLayout(2, 1)); JButton swinghi = new JButton("Swing hi"); JLabel swingtxt = new JLabel(" "); swinghi.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { swingtxt.settext("hi from Swing"); ); JPanel p = new JPanel(); p.setlayout(new BorderLayout()); p.add(swinghi, BorderLayout.WEST); p.add(swingtxt, BorderLayout.EAST); getcontentpane().add(p); JFXPanel fxp = new JFXPanel();
14 getcontentpane().add(fxp); pack(); Platform.runLater(() -> { Button javafxhi = new Button("JavaFX hi"); Label javafxtxt = new Label(" "); javafxhi.setonaction((e) -> { javafxtxt.settext("hi from JavaFX"); ); BorderPane bp = new BorderPane(); bp.setleft(javafxhi); bp.setright(javafxtxt); Scene scn = new Scene(bp); fxp.setscene(scn); ); SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame f = new MixedGUI(); f.setvisible(true); ); Jeg vil frarråde at forsøge at blande Swing og JavaFX. Forskellige look & feel, 2 event tråde etc. vil give masser af problemer. Applets Man kan også udvikle applets med JavaFX. Fremtid Som det fremgår af de foregående afsnit, så er JavaFX er meget spændende teknologi og et markant fremskridt i forhold til Swing. Imidlertid tror jeg ikke at JavaFX bliver en success. Java applets har været anset som forældet i forhold til Flash og SilverLight i mange år p.g.a. Swing. Nu har JavaFX så bragt Java op på niveau med disse, men alle 3 er nu forældede p.g.a. HTML 5 og manglende support i mobil browsere. Java desktop apps har aldrig været en stor success. Og selvom JavaFX vil gøre Java desktop apps bedre og nemmere at udvikle så er det usandsynligt at Java for alvor skulel få fat i det marked. For smartphone apps har Google valgt at give Android sit eget GUI framework, så heller ikke her vil JavaFX kunne finde en god niche.
15 Men for dem som har lyst til eller brug for at lave en desktop applikation: * hvor samme binary vil køre på Windows, MacOS X, Linux pg Solaris * med et moderne GUI framework * ikke er bange for at gå nye veje så er JavaFX absolut en interessant mulighed. Kommentar af acore d. 31. jul Meget illustrativ og lærerig guide - ville ønske at der var noget mere af den karat. Og får så helt lyst til at prøve JavaFX - har aldrig været rigtig god ven med Swing, men kan godt lide Java.
Arkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Forskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Eksamensrapport IT B/Pr C
Eksamensrapport IT B/Pr C Projekt - Formelsamling Klasse 3.3i Side 1 af 34 Indholdsfortegnelse Indledning - - - - - - - 3 Problemstilling/Problemformulering - - - - - 3 Målgruppeanalyse - - - - - - 3 Løsningsforslag
Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Who s to blame? Jeppe Rørbæk. [email protected] +45 22 70 55 07. Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT
Who s to blame? Jeppe Rørbæk [email protected] +45 22 70 55 07 Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT Introduktion til ATLAS AJAX Intro / hensigten med ATLAS Hvordan
RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Videregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Singleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
PHP Quick Teknisk Ordbog
PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,
Get Skeleton. Boilerplate for Responsive, Mobile-Friendly Development
Get Skeleton Boilerplate for Responsive, Mobile-Friendly Development Hvad er Get Skeleton?!? Get Skeleton er en lille samling af små CSS og JS filer, som giver dig adgang til ultra hurtig udvikling af
20% TIL ARKITEKTFORBUNDETS MEDLEMMMER
GRAFISKE KURSER SOFTWORLD KURSER 20% TIL ARKITEKTFORBUNDETS MEDLEMMMER Som medlem af Arkitektforbundet, får du 20% rabat på Adobe, Apple og Microsoft kurser hos Softworld. Arkitektforbundet har forhandlet
Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1
Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering Design af brugerflader 12.1 Sidste kursusgang Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design
Procesbeskrivelse - Webprogrammering
Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...
Hjælp under login på Mit DLR Oktober 2015
Hjælp under login på Mit DLR Oktober 2015 Jeg logger ind med bruger-id og nøglekort og får at vide, at der ikke er nogen sager i DLR Der er logget ind med forkert NemID. Vi oplever mange henvendelser,
Solution Makers Kompetence System
Forår 08 Solution Makers Kompetence System Construction Udarbejdet af Dan Buhr, Nicolaj Roos, Nick Niebling, Casper Cederberg og Jacob Hostrup Henriksen NORD, 2. semester Datamatiker, klasse tr07dat2,
Gode praksisser og arkitekturer i Android-programmering. Android - praksisser og arkitekturer Copyright Lund & Bendsen A/S
Gode praksisser og arkitekturer i Android-programmering 1 Om oplægsholderen Jacob Nordfalk [email protected] Instruktør for Lund&Bendsen Ekstern lektor på IHK Underviser i Java SE, Java EE, Webserverprogrammering,
University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Anvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.
Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.
GRAFISK PRODUKTIONSFORSTÅELSE
GRAFISK PRODUKTIONSFORSTÅELSE BRILLIANT BIKINIES WEBSITE MARÍ DYRMOSE OPGAVEN OPGAVEBESKRIVELSE Brilliant Bikini kompagniet skulle have designet og programmeret en website, hvor de kunne præsentere deres
Databaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Mendeley er både en reference manager og et akademisk socialt netværk.
Mendeley på PC er Mendeley er både en reference manager og et akademisk socialt netværk. Mendeley kan hjælpe dig med at organisere din forskning og samarbejde med andre online. Mendeley kan generere litteraturlister
3. PROJEKT, 2 SEMESTER
3. PROJEKT, 2 SEMESTER Bruger undersøgelse, af sociale medie. KENDSKAB TIL OG BRUG AF ONLINE SOCIALE MEDIER FORENINGEN AF DANSKE INTERAKTIVE MEDIER, FÅET TIL OPGAVE AT AFDÆKKE DANSKERNES BRUG AF SOCIALE
Dag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Hvorfor skal vi bruge objekt orienteret databaser?
OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal
Indhold. Guide til læsning af e-bøger på PC/Mac
Indhold Guide til læsning af e-bøger på PC/Mac... 1 Guide til læsning af e-bog på ipad/iphone... 3 Din e-bog er DRM-kopibeskyttet... 3 Din e-bog er ikke DRM-kopibeskyttet... 5 Guide til læsning af e-bog
Hvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Mendeley er både en reference manager og et akademisk socialt netværk.
Mendeley på PC er Mendeley er både en reference manager og et akademisk socialt netværk. Mendeley kan hjælpe dig med at organisere din forskning og samarbejde med andre online. Mendeley kan generere litteraturlister
Mendeley er både en reference manager og et akademisk socialt netværk.
Mendeley på PC er Mendeley er både en reference manager og et akademisk socialt netværk. Mendeley kan hjælpe dig med at organisere din forskning og samarbejde med andre online. Mendeley kan generere litteraturlister
Indhold. Guide til læsning af e-bøger på PC/Mac
Indhold Guide til læsning af e-bøger på PC/Mac... 1 Guide til læsning af e-bog på ipad/iphone... 3 Din e-bog er DRM-kopibeskyttet... 3 Din e-bog er ikke DRM-kopibeskyttet... 6 Guide til læsning af e-bog
Mini Afsluttende Projekt
Mini Afsluttende Projekt Tobias Sønderskov Hansen og Lau Lund Leadbetter Roskilde Tekniske Gymnasium Klasse 2.4 - IT 2013 Side 1 af 18 Indholdsfortegnelse Indledning... 3 Mindmap... 3 User Stories... 4
Articles... 3 I gang med Adobe Connect... 4 Når du skal invitere deltagere til et Adobe Connect møderum...11 Sådan redigerer du en video optaget i
WEB KONFERENCER Table of Contents Articles... 3 I gang med Adobe Connect... 4 Når du skal invitere deltagere til et Adobe Connect møderum...11 Sådan redigerer du en video optaget i Adobe Connect og indsætter
Eksempel på en database: studenter, kurser, eksamener
Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser
Bits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Installationsvejledning
Installationsvejledning Synchronicer Skrivebord til Android Version 3.3 af Soft Design A/S Indhold Installationsvejledning til Synchronicer Skrivebord... 3 Før du starter... 3 Sådan gør du... 3 1. Giv
Agenda. Exchange 2010 Client Access Server arkitektur. Outlook Web App (OWA) Office Outlook Outlook Mobile (EAS) Outlook Voice Access (OVA)
Agenda Exchange 2010 Client Access Server arkitektur Outlook Web App (OWA) Office Outlook 2010 Outlook Mobile (EAS) Outlook Voice Access (OVA) Client Access Server Arkitektur Internt Netværk Telefonsystem
A Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
KOM GODT I GANG MED. Desktop Mendeley Menuen er simpel og intuitiv. I Menuen Tools finder du web importer og MS Word plugin
Mendeley er et program til håndtering af PDF er og referencer, som frit kan downloades fra internettet. Der er fri lagringskapacitet for en enkeltbruger op til en vis mængde data. Du kan hente programmet
Test af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Forståelse for grafisk workflow
2 Forståelse for grafisk workflow I designet af den trykte bog har jeg haft et vågent øje til de overvejelser og design problematikker det medfører at bogen skulle klare at laves til en E-bog. Her vil
Bilag 1 Rige billeder Ordremodtagelse
Bilag1 Rigebilleder Ordremodtagelse Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 71 Overordnet Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 72 Produktionsgulvet Tværfagligtprojektpå2.Semester
Tillykke Med Fødselsdagen
HTML & CSS 1 Tillykke Med Fødselsdagen All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register
Installation af Oracle 10g Release 2 HTML DB
Installation af Oracle 10g Release 2 HTML DB Oracle 10g Companion CD en indeholder flere komponenter, hvor det vi er interesseret i er Oracle HTML DB (der siden hen har skiftet navn til Application Express
Fra idé til virkelig med Azure Mobile Services
Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion [email protected] @nielslbeck Windows Developers in Denmark Azure App Service Mobile App Introduktion til Azure Mobile Services Platform
Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.
Denne guide er oprindeligt udgivet på Eksperten.dk CSS - en gennemgang Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW. Der er lidt CSS historie
SMART Notebook 11.3 software til Windows - og Maccomputere
Produktbemærkninger SMART Notebook 11.3 software til Windows - og Maccomputere Lidt om disse produktbemærkninger Disse produktbemærkninger opsummerer funktionerne i SMART Notebook 11.3 samarbejdsbaserede
