Seminarium 8 Innehåll
|
|
- Ingrid Lund
- för 6 år sedan
- Visningar:
Transkript
1 Seminarium 8 Innehåll Grafiska användargränsnitt i Java Komponenter (fönster, knappar,...) Layout Händelsehantering (Hur man får någonting att hända när användaren t.ex. klickar på en knapp.) Design EDAA30 (Sem8) HT / 49
2 Grafiska användargränsnitt i Java Exempel på vad du ska kunna Implementera enkla användargränsnitt med hjälp av JavaFX. Beskriva och kunna tillämpa principerna för händelsehantering i JavaFX. Kunna använda lambda-uttryck i Java. Kunna separera modell och vy (grafiskt användargränssnitt) vid implementering av program med grafiska användargränssnitt. Grafiska användargränssnitt examineras inte i samband med tentamen utan enbart på laboration 3 och 6. De som väljer att lösa sudoku som inlämningsuppgift får ytterligare träning på detta. EDAA30 (Sem8) HT / 49
3 Klasspaket i Java AWT (Abstract Window Toolkit) Ett äldre paket Delar av det används fortfarande (händelsehantering och layout). Swing Ett modernare paket JavaFX Standard från Java8. Vanligast i nya projekt. EDAA30 (Sem8) HT / 49
4 Använda klasspaketet JavaFX För att kunna använda JavaFX måste man känna till Klasserna som beskriver grafiska komponenter: fönster (Stage), knappar (Button)... Hur man placerar de grafiska komponenterna i ett fönster (layout). Hur man hanterar händelser. T.ex. att användaren trycker på en knapp. EDAA30 (Sem8) HT / 49
5 Scengraf De grafiska komponenterna som visas på skärmen representeras av objekt. JavaFX ritar automatiskt alla komponenter, uppdaterar vid behov, t.ex. när fönstrets storlek ändras. Scengrafen - objekten arrangeras i en hierarkisk struktur, som är ett träd. Roten är ett objekt av klassen Stage Stage instansieras av ramverket EDAA30 (Sem8) HT / 49
6 Grafiska komponenter Exempel, fler finns Styrkomponenter Används för att interagera med användare. Finns i paketet javafx.scene.control Ex: knappar, menyer, textrutor Reagerar på händelser (musklick, menyval,... ). Former Geometriska former som ritas, men användaren inte kan påverka. Ex. rektangel, linje och cirkel Finns i paketet javafx.scene.shape Behållarkomponenter Kan innehålla andra komponenter och används för att organisera komponenter. Ofta osynliga Lägg till barn med metoderna getchildren().addall() eller getchildren().add() EDAA30 (Sem8) HT / 49
7 behållarkomponenter javafx.scene.control.control Objekt som användaren interagerar med. Exempel ToolBar, TabPane. javafx.scene.layout.region anpassar storek när fönstret ändras. Subklasser till Region placerar barnen enligt en layout StackPane, HBox, VBox, TilePane, FlowPane, BorderPane, GridPane, och AnchorPane. javafx.scene.group Fix storlek, ändras inte när fönstret ändras. EDAA30 (Sem8) HT / 49
8 Starta en JavaFX applikation import javafx.application.application; import javafx.scene.scene; import javafx.stage.stage; public class MyApp extends Application { public void init() {... public void start(stage stage) throws Exception { Pane root = makescengraph(); Scene scene = new Scene(root, 200, 80); stage.setscene(scene); stage.settitle("hello World"); stage.show(); public void stop() {... public static void main(string[] args) { launch(args); EDAA30 (Sem8) HT / 49
9 Starta en JavaFX applikation Kommentarer init anropas innan JavaFX har satt upp ramverket, används normalt inte. start - här skaps normalt scenografen. Koppla den till stage och anropa stage.show(). stop anropas när programmet avslutas. Här kan du t.ex. spara dokument till fil. start är abstract i Application och måste implementeras. init och stop ärvs från Application och behöver inte implementeras. main behöver inte ligga i MyApp. Du kan även starta JavaFX med MyApp.launch(args) och Application.launch(MyApp.class, args). EDAA30 (Sem8) HT / 49
10 Trådar JavaFX använder flera trådar. Alla JavaFX-objekt måste skapas i Application.start() eller i en event-hanterare. Lägg all kod i Application.start(), Application.stop() och i event-hanterare så körs allt i en tråd och du behöver inte bekymra dig om tråd-synkronisering. (som behandlas i kursen realtidsprogrammering) EDAA30 (Sem8) HT / 49
11 Exempel: Fönster med en knapp import javafx...; public class Counter extends Application { public void start(stage stage) throws Exception { Button button = new Button("Yes!"); Label label = new Label("0"); HBox buttonbox = new HBox(); buttonbox.setspacing(20); // Sets the amount of horizontal buttonbox.setalignment(pos.center); // Sets the overall alig buttonbox.getchildren().addall(button, label); Pane root = new StackPane(); root.getchildren().add(buttonbox); Scene scene = new Scene(root, 200, 80); stage.setscene(scene); stage.show(); EDAA30 (Sem8) HT / 49
12 Layoutmanager En layoutmanager är ett objekt som bestämmer storlek och läge för komponenterna i en behållare. Den räknar också ut nya positioner och storlekar om fönstrets storlek ändras. Varje behållare har en egen layoutmanager kopplad till sig. Olika typer av layoutmanagers har olika strategier för placering av komponenterna. Ex: BorderPane delar utrymmet i fem delar; norr, söder, öster, väster och mitten. FlowPane komponenterna placeras i en rad efter varandra. HBox horisontell rad. GridPane rutnät. TilePane rutnät, alla rutor lika stora. AnchorPane ankrat till sida/hörn. EDAA30 (Sem8) HT / 49
13 Exempel: BorderPane private Pane makescengraph(){ BorderPane root = new BorderPane(); root.settop(new Button("Top")); root.setleft(new Button("Left")); root.setcenter(new Button("Center")); root.setright(new Button("Right")); root.setbottom(new Button("Bottom")); root.setprefsize(200, 400); return root; EDAA30 (Sem8) HT / 49
14 Exempel: FlowPane private Pane makescengraph(){ FlowPane root = new FlowPane(); root.sethgap(10); root.setvgap(10); root.setpadding(new Insets(10, 10, 10, 10)); for(int i = 1; i<=5; i++){ root.getchildren().add(new Button("box " + i)); return root; EDAA30 (Sem8) HT / 49
15 FlowPane - ändring av layouten när fönstret ändrar storlek EDAA30 (Sem8) HT / 49
16 Exempel: GridPane Rader och kolumner kan ha olika storlek. private Pane makescengraph(){ GridPane root = new GridPane(); root.sethgap(10); root.setvgap(10); root.setpadding(new Insets(10, 10, 10, 10)); root.add(new Button("one"), 0, 0); root.add(new Button("two"), 1, 0); root.add(new Button("three"), 2, 0); root.add(new Button("four"), 0, 1); root.add(new Button("five"), 1, 1); root.add(new Button("six"), 2, 1); return root; EDAA30 (Sem8) HT / 49
17 Exempel: TilePane Som FlowPane, men cellerna har samma storlek. private Pane makescengraph(){ TilePane root = new TilePane(); final int SIZE = 40; root.setprefsize(8 * SIZE, 8 * SIZE); for (int i = 1; i <= 8; i++) { for (int k = 1; k <= 8; k++) { Label label = new Label(); label.setprefsize(size, SIZE); if (i % 2!= 0 && k % 2!= 0 i % 2 == 0 && k % 2 == 0) { label.setstyle("-fx-background-color: #000000;"); root.getchildren().add(label); return root; EDAA30 (Sem8) HT / 49
18 Exempel: Nästlade layouthanterare private Pane makescengraph(){ HBox topbox = new HBox(); topbox.setpadding(new Insets(12, 12, 12, 12)); topbox.setspacing(5); topbox.setalignment(pos.center); topbox.setstyle("-fx-background-color: #009900;"); topbox.getchildren().addall(new Button("1"), new Button("2")); HBox bottombox = new HBox(); bottombox.getchildren().addall(new Button("3"), new Button("4"), new Button("5")); BorderPane root = new BorderPane(); root.settop(topbox); root.setbottom(bottombox); root.setprefsize(200, 100); return root; EDAA30 (Sem8) HT / 49
19 Händelsehantering När användaren klickar på en knapp, väljer ett menyalternativ... händer följande: 1 Ett händelseobjekt skapas. 2 JavaFXsystemet anropar handle-metoden på de lyssnarobjekt som är knutna till komponenten. EDAA30 (Sem8) HT / 49
20 Lyssnarobjekt 1 Ett lyssnarobjekt är ett objekt av en klass som implementerar interfacet: public Interface EventHandler<T extends Event> { void handle(t event) 2 Ett lyssnarobjekt kan knytas till flera komponenter. 3 En komponent kan ha flera lyssnarobjekt, alla anropas. 4 Normalt har varje komponent ett eget lyssnarobjekt. 5 De flesta klasser och interface som har med händelser att göra finns i paketet javafx.event. EDAA30 (Sem8) HT / 49
21 Händelsehantering För att få någonting att hända när användaren klickat på en knapp måste man: Låta någon klass implementera interfacet EventHandler. I metoden handle skriver man det man vill ska hända när användaren klickar på knappen. Koppla lyssnar-objektet till knappen genom att anropa metoden setonaction. Jfr. tidningsprenumeration. Man kan göra liknelsen att lyssnar-objektet prenumererar på händelsen knappen trycks ned. EDAA30 (Sem8) HT / 49
22 Exempel på händelsehantering EDAA30 (Sem8) HT / 49
23 Exempel på händelsehantering Klassen Counter public class Counter extends Application { private Button button; private Label label; private int counter; public static void main(string[] args) { launch(args); private class ButtonHandler implements public void handle(actionevent event) { counter++; label.settext(integer.tostring(counter)); public void start(stage stage) throws Exception { /** se näst sida **/ EDAA30 (Sem8) HT / 49
24 Exempel på händelsehantering Klassen Counter, start-metoden public void start(stage stage) throws Exception { button = new Button("Yes!"); button.setonaction(new ButtonHandler()); label = new Label("0"); HBox buttonbox = new HBox(); buttonbox.setspacing(20); buttonbox.setalignment(pos.center); buttonbox.getchildren().addall(button, label); Pane root = new StackPane(); root.getchildren().add(buttonbox); Scene scene = new Scene(root, 200, 80); stage.setscene(scene); stage.settitle("counter"); stage.setscene(scene); stage.show(); EDAA30 (Sem8) HT / 49
25 Händelsehantering - flera komponenter Man kan ha flera komponenter som genererar händelser. T.ex. olika knappar, textfält, menyer,... Olika saker ska hända beroende på vilken av komponenterna som genererade händelsen. Detta kan man lösa på olika sätt: Låt ett lyssnarobjekt ta hand om alla händelserna. Då måste detta kunna identifiera vilken komponent händelsen är förknippad med (t ex med hjälp av ActionEvent-objektet). Låt varje komponent ha sitt eget lyssnarobjekt. EDAA30 (Sem8) HT / 49
26 Exempel på händelsehantering flera knappar EDAA30 (Sem8) HT / 49
27 Lösning 1: en lyssnare för alla komponenter Klassen Counters, attribut samt konstruktor public class Counter extends Application { private Button yesbutton, nobutton; private Label yeslabel, nolabel; private int yescounter, nocounter;... public void handle(actionevent e) { if (e.getsource() == yesbutton){ yescount++; yeslabel.settext("yescount: " + yescount); else if (e.getsource() == nobutton){ nocount++; nolabel.settext("nocount: " + nocount); EDAA30 (Sem8) HT / 49
28 Lösning 2: bättre alternativ, en lyssnare per komponent Inre klasser Deklarera en lyssnar -klass per knapp. Dessa klasser deklareras som inre klasser i Counters: private class YesButtonHandler implements public void handle(actionevent event) { yescounter ++; yeslabel.settext(integer.tostring(yescounter)); private class NoButtonHandler implements EventHandler<ActionEvent> public void handle(actionevent event) { nocounter ++; nolabel.settext(integer.tostring(nocounter)); EDAA30 (Sem8) HT / 49
29 Lösning 2: en lyssnare per komponent Anrop av addactionlistener I start knyter vi lyssnare till knappar med:... yesbutton.setonaction(new YesButtonHandler());... nobutton.setonaction(new NoButtonHandler());... EDAA30 (Sem8) HT / 49
30 Lösning 2: en lyssnare per komponent Kommentarer I lösningen slipper vi nu undersöka vilken knapp som användaren klickat på. Det blir enklare att lägga till en komponent. Men men det blir många små lyssnarklasser om man har många komponenter. De lösningar vi visat separerar inte det grafiska användargränssnittet (vyn) från modellen. Det är önskvärt att separera dessa. vyn kan man ofta vilja ändra medan modellen ligger fast. Vissa operationer, t.ex. load/save, berör bara modellen. Det blir besvärligt att implementera och testa dessa om vy och modell blandas samman. En ännu bättre lösning finns alltså (se följande bilder). EDAA30 (Sem8) HT / 49
31 Lösning 3 - modell-vy En tredje lösning, som löser problemen på föregående bild; Vi separerar modell och vy. När modellen separeras från det grafiska modellen blir det lättare att skapa metoder som bara berör modellen, t.ex. att spara dokumentet till en fil. Detaljer finns på de följande bilderna. EDAA30 (Sem8) HT / 49
32 Lösning 3: designen Button EventHandler <ActionEvent> Counters yescount: int nocount: int incrementyescount() incrementnocount() getyescount(): int getnocount(): int YesButton CountersView yeslabel: JLabel nolabel: JLabel updateyeslabel() updatenolabel() EDAA30 (Sem8) HT / 49
33 Lösning 3: modellen Klassen Counters med de båda räknarna public class Counters { private int yescount; private int nocount; public Counters() { yescount = 0; nocount = 0; public void incrementyescount() { yescount++; public void incrementnocount() { nocount++; public int getyescount() { return yescount; public int getnocount() { return nocount; EDAA30 (Sem8) HT / 49
34 Lösning 3: vyn Klassen CountersView public class CountersView extends Application { private Counters counters; private Label yeslabel, nolabel; public CountersView(Counters counters) { this.counters = counters; public void start(stage stage) throws Exception {... skapa knappar och etiketter... public void updateyeslabel() { yeslabel.settext("yescount: " + counters.getyescount()); public void updatenolabel() { nolabel.settext("nocount: " + counters.getnocount()); EDAA30 (Sem8) HT / 49
35 Lösning 3: knappar som lyssnar på sig själva Klassen YesButton public class YesButton extends Button implements EventHandler<ActionEvent> { private Counters document; private CountersView view; public YesButton(Counters counters, CountersView view) { super("yes!"); document = counters; this.view = view; setonaction(this); public void handle(actionevent e) { document.incrementyescount(); view.updateyeslabel(); EDAA30 (Sem8) HT / 49
36 Lösning 3: huvudprogram Klassen Main Modellen och vyn kopplas ihop i main-metoden: public class Main { public static void main(string[] args) { Counters counters = new Counters(); CountersView view = new CountersView(counters); view.launch(args); EDAA30 (Sem8) HT / 49
37 Ytterligare refaktoriseringar Knappklasserna, YesButton och NoButton, innehåller nästan likadan kod. Duplicerad kod är någonting man bör undvika. De båda knappklasserna skulle därför kunna slås ihop till en klass. Anm. Med refaktorisering menas att man förbättrar programkoden utan att programmets funktion ändras. Syftet med refaktoriseringen är att programkoden ska bli mer lättläst och lättare att underhålla. EDAA30 (Sem8) HT / 49
38 Andra problem Kommentarer Alla lösningar som visats innehåller mycket kod. Det finns alltid en EventHandler för varje knapp. Liknande funktionalitet är spridd i flera klasser och i flera filer. Det finns mycket kod som skymmer funktionaliteten, d.v.s ökning av räknaren, counter++ class... implements EventHandler<ActionEvent> public void handle(actionevent event) Dessa problem kan minskas med anonyma klasser och lambda-uttryck. EDAA30 (Sem8) HT / 49
39 Annonyma klasser Klasser som bara instansieras en gång behöver inte namnges och kan skapas inline vid new. button.setonaction(new EventHandler<ActionEvent>() { public void handle(actionevent event) { counter++; label.settext(integer.tostring(counter)); ); Det blir nu tydligare vilken funktionalitet som kopplas till vilken knapp. EDAA30 (Sem8) HT / 49
40 Lambda-uttryck Förenklat är lambdauttryck anonyma klasser där du bara skriver innehållet i en metod. Kompilatorn listar ut vilken och alla typer från sammanhanget. button.setonaction(event -> { counter ++; label.settext(integer.tostring(counter)); ); Lambdauttryck skapar objekt, d.v.s. används normalt istället för new. Värden som är synliga i ett lambda-uttryck: attribut i den omgivande klassen variabler som är final i den omgivande metoden EDAA30 (Sem8) HT / 49
41 Lambda-uttryck syntax Lambdauttryck skrivs på formen ( formella parametrar ) -> { metodkropp typer på parametrar behöver inte anges är det bara en parameter kan även () utelämnas består kroppen av ett uttryck kan { och utelämnas består kroppen av ett uttryck kan även return utelämnas (Typ1 p1, Typ2 p2) -> { return p1 * p2; (p1, p2) -> p1 * p2 p -> p * p EDAA30 (Sem8) HT / 49
42 Fler komponenter MenuBar, Menu, MenuItem Menyer För att välja mellan alternativ som kan grupperas i en eller flera menyer. Händelsehantering analogt med knappar. Kommer att användas på laboration 3 och 6. Menu MenuBar MenuItem EDAA30 (Sem8) HT / 49
43 Fler komponenter CheckBox, RadioButton, ChoiceBox CheckBox För att välja ett eller flera alternativ. RadioButton För att välja bland alternativ men bara ett alternativ för varje grupp av radioknappar kan vara valt. ChoiceBox En drop-down-lista. För att göra ett val bland en lista av alternativ EDAA30 (Sem8) HT / 49
44 Fler komponenter TextField, TextArea TextField Ett editerbart textfält en rad. När användare skriver in radslutstecken genereras ActionEvent. textfield.gettext() returnerar den sträng som skrivits i fältet. TextArea Flera rader. Kan sättas uneditable och användas för att visa flera rader text. Kan vara editable och användas för att skriva in flera rader text. Radslut genererar ActionEvent. textarea.gettext() returnerar det som skrivits (i form av en sträng). EDAA30 (Sem8) HT / 49
45 Fler komponenter dialogrutor Exempel, TextInputDialig public void start(stage arg0) throws Exception { TextInputDialog dialog = new TextInputDialog(" "); dialog.settitle("compute Square root"); dialog.setheadertext(""); dialog.setcontenttext("please enter a number:"); double n = 0; Optional<String> result = dialog.showandwait(); EDAA30 (Sem8) HT / 49
46 Fler komponenter dialogrutor Använda Optional och Alert Optional<String> result = dialog.showandwait(); if (result.ispresent()){ try { n = Double.valueOf(result.get()); double sqrroot = Math.sqrt(n); Alert alert = new Alert(AlertType.INFORMATION); alert.settitle("result"); alert.setheadertext(null); alert.setcontenttext(double.tostring(sqrroot)); alert.showandwait(); catch (NumberFormatException e) { Alert alert = new Alert(AlertType.ERROR); alert.settitle("error in input"); alert.setheadertext(null); alert.setcontenttext("wrong input"); alert.showandwait(); EDAA30 (Sem8) HT / 49
47 Fler komponenter Listor ListView För att visa en skrollbar lista i en vy finns klassen ListView. Till en ListView kopplas modellen av listan av typ ObservableList<T>. ObservableList<T> är ett interface. Det finns färdiga implementeringar av interfacet t.ex. ObservableArrayList<T>. Alla modifieringar av listan (modellen) görs via operationer på den modell som kopplas till vyn. Dessa modifieringar visas automatiskt i vyn av listan. Det finns operationer, SelectionModel och FocusModel, för att ta reda på vad som är markerat i vyn. EDAA30 (Sem8) HT / 49
48 Grafik Man kan enkelt rita figurer som linjer, cirklar, rektanglar... De geometriska figurer finns i paketet javafx.scene.shape. Lägg till dem i scenen på samma sätt som andra GUI-komponenter, container.getchildren().add(new Circle(x, y, r)); EDAA30 (Sem8) HT / 49
49 Avsluta program Exempel, TextInputDialig Ett JavaFX program avslutas när alla fönster stängts, av användaren eller programmet. Om du vill avsluta programmet, t.ex. från en händelsehanterare, anropar du Platform.exit(). stop i din Application-klass anropas i båda fallen ovan. Om du anropar System.exit(status) kommer stop inte att anropas. EDAA30 (Sem8) HT / 49
Föreläsning 6 Innehåll
Föreläsning 6 Innehåll Grafiska användargränsnitt i Java Orientering om JavaFX (ett ramverk för grafiska användargränssnitt) Komponenter (fönster, knappar,...) Layout Händelsehantering (Hur man får någonting
Läs merJavaFX Ett ramverk för grafiska användargränssnitt. Föreläsning 7 Innehåll. Använda JavaFX Kommentar. En JavaFX-applikation
Föreläsning 7 Innehåll JavaFX Ett ramverk för grafiska användargränssnitt Grafiska användargränsnitt i Java Orientering om JavaFX (ett ramverk för grafiska användargränssnitt) Komponenter (fönster, knappar,
Läs merFöreläsning 7 Innehåll. JavaFX i Java Ett ramverk för grafiska användargränssnitt. Använda JavaFX. Använda JavaFX Kommentar
Föreläsning 7 Innehåll JavaFX i Java Ett ramverk för grafiska användargränssnitt Grafiska användargränsnitt i Java Komponenter (fönster, knappar, ) Layout Händelsehantering (Hur man får någonting att hända
Läs merFöreläsning 7 Innehåll
Föreläsning 7 Innehåll Grafiska användargränsnitt i Java Orientering om JavaFX (ramverk för grafiska användargränssnitt) Komponenter (fönster, knappar,...) Layout Händelsehantering (Hur man får någonting
Läs merFöreläsning 7 Innehåll. JavaFX Ett ramverk för grafiska användargränssnitt. Använda JavaFX Kommentar. En JavaFX-applikation
Föreläsning 7 Innehåll JavaFX Ett ramverk för grafiska användargränssnitt Grafiska användargränsnitt i Java Orientering om JavaFX (ramverk för grafiska användargränssnitt) Komponenter (fönster, knappar,
Läs merFöreläsning 6 Innehåll
Föreläsning 6 Innehåll Grafiska användargränsnitt i Java Orientering om JavaFX (ett ramverk för grafiska användargränssnitt) Komponenter (fönster, knappar,...) Layout Händelsehantering (Hur man får någonting
Läs merFöreläsning 6 Innehåll. JavaFX Ett ramverk för grafiska användargränssnitt. En JavaFX-applikation. Använda JavaFX Kommentar
Föreläsning 6 Innehåll JavaFX Ett ramverk för grafiska användargränssnitt Grafiska användargränsnitt i Java Orientering om JavaFX (ett ramverk för grafiska användargränssnitt) Komponenter (fönster, knappar,
Läs merGrafiska användargränssitt och händelsehantering
Grafiska användargränssitt och händelsehantering i Java GUI i Java AWT, Abstract Window Toolkit, java.awt Använder systemets GUI-komponeneter Swing, javax.swing Komponenter, förutom fönster, renderas av
Läs merGrafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java
Föreläsning 7 Innehåll Grafiska användargränsnitt i Java Grafiska användargränsnitt i Java Komponenter (fönster, knappar, ) Layout Händelsehantering (Hur man får någonting att hända när användaren t.ex.
Läs merGrafiska användargränssnitt i Java
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har
Läs merGrafiska användargränssnitt i Java
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har
Läs merGrafiska användargränssnitt i Java
jonas.kvarnstrom@liu.se 2017 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Till stor del ersatt av Swing: Mer omfattande,
Läs merITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter
ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering 1 DSV Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste åren I Java finns
Läs merFortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 AWT. Paket för hantering av grafik
Fortsättningskurs i programmering F 5 GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 1 Abstract Window Toolkit Paket för hantering av grafik dvs skapa grafisk användargränssnitt java.awt
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015
Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation
Läs merFöreläsnings 11 - GUI, Händelsestyrda program, MVC
Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016
Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik
Läs merObjektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetition: Arv En subklass ärver alla variabler och metoder från sin superklass.
Läs merFöreläsning 3: Händelsestyrda program och användargränssnitt
(2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september
Läs merWindows Forms Winstrand Development
2013-01-23 1 Winstrand Development Användargränssnitt Hittills har vi skapat program för kommandoraden. Den bakomliggande koden fungerar som den ska, men vi upptäcker snabbt att programmen är begränsade
Läs mer2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering
2I1049 Föreläsning 8 Grafiska gränssnitt, Java interface och händelsehantering 1 KTH-MI Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merKort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Läs merDUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.
1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.
Läs merLab5 för prgmedcl04 Grafik
Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merDI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Läs merDagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?
Programmeringsteknik och Matlab Övning 6 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Grafiskt användargränssnitt, Swing Layout och komponenter Göra
Läs merProgrammeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt
Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merObjektorienterad programmering med Java Swing: Händelser, lyssnare och applets
GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet
Läs merHögskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
Läs merGrundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 18 Igår: Genomgång av dugga Rekursion Idag och på måndag: Om essän Lite, lite teori om konstanter Grafiska användargränssnitt Grundläggande
Läs merLösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel
Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:
Läs merJava: Utvecklingsverktyg, datatyper, kontrollstrukturer
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se
Läs merMer om grafiska komponenter. Händelsestyrda program
Layout Managers TDA143 I1 Programmerade system Föreläsning 14 (OH-bilder 10) Mer om grafiska komponenter. Händelsestyrda program Utplaceringen av komponenter i en behållare styrs med en Layout Manager.
Läs merKungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Läs merFöreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag
Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer
Läs merLektion Händelsehanterare
Lektion Händelsehanterare Händelsehanterare kallas även lyssnare. En lyssnare har som uppgift att ta hand om olika händelser som kan inträffa. För att lyssnaren skall reagera på händelser måste den registreras
Läs merDenna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se
1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik
Läs merApplets med komponenter
5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid
Läs merObjektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015
Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora
Läs merFöreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt
Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras
Läs merSMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation.
SMD091 Lektion 9 Inkapsling Lite repetition Grafik 1 2 Gränssnitt Definition och Implementation Sammansättning... Definition...är ofta det bästa sättet att använda funktionalitet i andra klasser. Ratt
Läs merFactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28
FactoryCast HMI Premium & Quantum PLC Applets 2004-10-28 INNEHÅLLSFÖRTECKNING 1 OM DETTA DOKUMENT...3 2 FÖRUTSÄTTNINGAR...3 3 PROJEKT I J++...4 3.1 LÄSA PLC-VARIABLER...4 3.1.1 Gränssnittet...4 3.1.2 Upprätta
Läs merSwing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna
MER Java Foundation Classes (JFC) Swing Swing Många klasser Vettigt att lära sig dem utantill - Tror inte det -... men det kan vara bra att ha en liten överblick över vad som finns - Idag (och med fortsättning
Läs merSwing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna
MER Java Foundation Classes (JFC) Swing Swing Många klasser" Vettigt att lära sig dem utantill" - Tror inte det" -... men det kan vara bra att ha en liten överblick över vad som finns" - Idag (och med
Läs merHändelsestyrda program
JavaD- 1 Program- eller händelsestyrd exekvering Händelsestyrda program JavaD- 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merTENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Läs merKlassen javax.swing.timer
Klassen javax.swing.timer I Swing finns en klass Timer som man kan använda för att upprepa en vis kodsekvens med jämna tidsmellanrum. Ett objekt av klassen Timer exekveras som en egen tråd. Ett objekt
Läs merFöreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Läs merFÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Läs mer2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Läs merGrundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Läs merFöreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
Läs merLösningsförslag till tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Lösningsförslag till tentamen FYTA11 Javaprogrammering Fredag 9:e januari 2009, 09:00 13:00 Uppgift 1: Leta buggar Titta på klasserna A,
Läs merObjektorienterad Programmering DAT043. Föreläsning 6 30/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 6 30/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetion: En GUIapplikation med Swing Huvudklass implementerar Runnable - metoden
Läs merOmtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-08-30, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Läs merFöreläsnings 9 - Exceptions, I/O
Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public
Läs merDI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson
DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson Lösningar till TENTAMEN I IXC003 SYSTEMUTVECKLING MED INTERNET/INTRANET, del 1 (5p) för IT3 och INTERNETPROGRAMMERING MED JAVA
Läs merUML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.
Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merPROGRAMMERINGSTEKNIK TIN212
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merDetta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:
Läs merObjektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.
Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge
Läs merObjektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00
Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 FACIT Tentamen 20150613, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del
Läs merDAT043 - föreläsning 8
DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns
Läs merObjektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit
Swing och AWT Objektorienterad programmering med Java Swing Sven-Olof Nyström Uppsala Universitet March 14, 2006 Skansholm: Kapitel 6 AWT = Abstract windowing toolkit använder värddatorns fönstersystem
Läs merFöreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing
Föreläsning 15 (16) Introduktion till Swing Historik (java.awt) JDK 1.0 AWT (Abstract Window Toolkit) Paket för gränssnittsprogrammering Har en del nackdelar: Använder s.k. native code Stödjer endast komponenter
Läs merMalmö högskola 2007/2008 Teknik och samhälle
Laboration 13 Avsikten med denna laboration är att du ska använda ett par nya grafiska komponenter. Dessutom ska du göra designen utan hjälp av en layout-manager (enklare). Börja med att skapa paketet
Läs merTentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl
Läs merEDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Läs merFrames, menyer och GUI-program
15 Frames, menyer och GUI-program Frames En frame-klass Om konstruktorer - igen Funktionella fönster Menyer Popupmenyer GUI-applikationer Dialogrutor Printerutskrift Kap 15: Sid 2 Frames Redan i kapitel
Läs merKlasshierarkier - repetition
Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet
Läs merDagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merLösningsförslag tentamen FYTA11 Java
Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Lösningsförslag tentamen FYTA11 Java Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade
Läs merFöreläsningsmaterial (Arv) Skrivet av Andreas Lund
Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Inledning Arv är ett begrepp som är tätt förknippat med objektorientering. Principerna bakom arv är grundade i högst vardagliga relationer mellan olika
Läs merLaboration 1: Figurer i hierarki
Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras
Läs merFöreläsning 7. Grafiska användargränssnitt
Föreläsning 7 Grafiska användargränssnitt För att göra grafiska användargränssnitt: Måste man veta hur man skapar komponenterna i ett GUI och vilka det finns. Till lab 3 räcker det med att känna till de
Läs merExempel på användning av arv: Geometriska figurer
(9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014
Läs merMalmö högskola 2007/2008 Teknik och samhälle
Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel
Läs merOutline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine
Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Klassen calculator Signatur Calculator
Läs merProperties. Användbara metoder som kan anropas i propertychanged:
Properties Ett objekt kan ha vissa egenskaper (som beskrivs med instansvariabler). En enkel egenskap X avläses och sätts med metoderna getx() och setx(värde). En indexerad egenskap (från t.ex. en array)
Läs merLaboration 15 Grafiskt användargränssnitt
Laboration 15 Grafiskt användargränssnitt Avsikten med denna laboration är att du ska träna på att skriva program som använder grafiskt användargränssnitt, dvs program som använder grafiska komponenter
Läs merGrafiska komponenter.
Grafiska komponenter. Kap J5-1 Grafiska användargränssnitt är det moderna alternativet till traditionell terminal-i/o. GUI-programmering bygger på en händelsestyrd flödeskontroll. I Java utförs GUI-programmeringen
Läs merJava-concept och Swing. Swing low, sweet chariot
Java-concept och Swing Swing low, sweet chariot Javas Swing-API En del av Javas standard-api API - application programming interface Ett klassbibiliotek som följer med Java Är designat med många OO-concept
Läs merTentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Tentamen FYTA11 Javaprogrammering Fredag 9:e januari 2009, 09:00 13:00 Instruktioner Inga hjälpmedel är tillåtna. Behandla högst en uppgift
Läs merKonstruktion av klasser med klasser
Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut
Läs merTentamen i Objektorienterad modellering och design
Lunds Tekniska Högskola Datavetenskap Tentamen EDA061 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Vid bedömningen kommer hänsyn att tas till lösningens kvalitet. UML-diagram
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
Läs merObjektorienterad Programkonstruktion, DD1346. Tentamen , kl
Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 Tentamen 2016 03 18, kl. 14.00 17.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del I
Läs merTentamen i Objektorienterad programmering
CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar
Läs mer