DKGG -­ LAB1
Peter Börjesson
[email protected]
Laboration 1
•
Kursens labbar syftar till att ge träning i att bygga prototyper av grafiska gränssnitt.
– Swing – Java FX
•
Olika backend, olika instruktioner
Arkitektur – Lab 1
•
En form av MVC
– Model-­View-­Presenter
– Presenter har referenser till både model och view
– Samordnar kommunikation åt båda hållen
– Model och Presenter finns klara
Utvecklingsmiljö (Swing)
•
Lab görs med Java + NetBeans samt en skalapplikation som vi tillhandahåller.
•
Motiv
– Java
– Bra GUI – editor i NetBeans
– GUI-­design kärnan i labbarna
– Rätt komplexitet
•
Fritt fram att använda andra utvecklingsmiljöer, men handledning och instruktioner är riktade mot Netbeans.
– Krav på använda GUI-­editor
Skalapplikationen (Swing)
•
ExampleApplication.java
– Startar upp, avslutar m.m.
•
ExampleApplicationView – extends JFrame
– Jframe och menu finns
– Redo att börja skapa med GUI-­editor
• initComponents()
• Rör aldrig denna
•
Properties-­filer
– Alla strängar på samma ställe
– Bra för att stödja olika språk
NetBeans GUI-­editor (Swing)
Kopplingar (Swing)
•
Drar komponenter till vyn
– Lämpliga variabler skapas
– Ändra namnen
– Kan kopplas till Properties-­fil
•
Events
– Tomma metoder
private void buttonPressed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
Utvecklingsmiljö (FX)
•
Lab görs med Java FX + NetBeans och Scene Builder samt en skalapplikation som vi tillhandahåller.
•
Motiv
– Java FX
– Scene Builder
– GUI-­design kärnan i labbarna
– Mer avancerat alternativ, mindre handledning
•
Fritt fram att använda andra utvecklingsmiljöer än NetBeans, krav på att använda Scene Builder.
Skalapplikationen (FX)
•
ExampleApplication.java
– Startar upp, avslutar m.m.
– Kopplar ihop fxml och properties till Java.
•
ExampleApplicationController.java
– Hanterar all GUI-­logik och kopplingar till backend
•
example_application.fxml
– Innehåller GUI-­kod som redigeras i Scene Builder
•
Properties-­filer
– Alla strängar på samma ställe
– Bra för att stödja olika språk
Scene Builder (FX)
Kopplingar (FX)
•
Drar komponenter till vyn
– Ge dessa ett fx:id newButton
– Java-­controller: @FXML private Button newButton
– Kan kopplas till Properties-­fil
•
Action
– Skapa metoder i Java Controller
@FXML
private void newButtonActionPerformed(ActionEvent evt) {
// TODO add your handling code here:
}
Property (FX)
•
Alla komponenter har olika properties som går att lyssna på, tex: selectedItemProperty, eller focusedProperty
– Dessa kopplas ihop med en ChangeListener
•
ChangeListener
@Override
public void changed(observable, oldValue, newValue) {
// TODO add your handling code here:
}