Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.

Slides:



Advertisements
Verwante presentaties
Negatieve getallen Klas 1 | Hoofdstuk 4
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
LRP FONDSEN /ABONNEMENTEN/REKENINGEN release 2.1 Koos Willemse.
Een digitaal verhaal maken
Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World •Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
Van domeinklasse tot implementatie
Het ontwerpen van een klasse
Schoolgegevens nakijken en bezette plaatsen invoeren Surf naar Log in via het blokje ‘bestaande.
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Het type int Tekenen met Java operatoren
Klassen en objecten.
Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Hoofdstuk 2 Hallo, C# !.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Hoofdstuk 10 Overerving.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Java GUI nJava is platform-onafhankelijk nLook&feel past zich aan aan het platform new FileDialog(……).show();
Arrays.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Schaalberekeningen Hoofdstuk 1 Australië.
Les 2: Interactie in je space door middel van klikbare objecten en actionscript. Wat is actionscript en programmeren?
 De Loader Class wordt gebruikt om afbeeldingen (jpg, png, gifs) of swf’s tijdens het afspelen van het programma te laden. Ze staan dus niet in de Library.
Objectgeoriënteerd Ontwerp
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Datacommunicatie en netwerken
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Scope. Scope van variaben/methoden Een variabele is te gebruiken binnen de { en } waarbinnen hij is aangemaakt. Hetzelfde geld voor een methode { int.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Encapsulatie: Every man is an island upon himself.
Hoofdstuk 14.2 Algoritmen: Automatische taalherkenning.
Polymorphisme en Interfaces: inleiding
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Let’s go! ›Beginnerspresentatie ›Starten met prospero ›Verschil CMS en web navigator ›Nieuwe content > nieuwe folder aanmaken ›Bestanden uploaden ›Linkobject.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Variabelen. Wat zijn variabelen? Klassiek: een variabele houdt informatie bij. Klassiek: een variabele houdt informatie bij. bvb: int getal; getal = 5;
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Hoe maak ik een PowerPoint presentatie?
GUI Graphical User Interface. Wat is een Graphical User Interface Mooi Gebruiksvriendelijk Veel denkwerk.
GUI & classes Een Gui in een class steken en het object gebruiken.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Object georiënteerd programmeren
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Gameprogrammeren: Properties
OOS Object geOrienteerd Software-ontwerp - 5
Tinpro015b-les4 Klassen.
Implementatie Zoekboom
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2

2 Soorten Java-programma’s

3 Gebruikersinterface Het maken van een gebruikersinterface is een belangrijke stap in het ontwikkelen van een programma voor algemeen gebruik Zo’n interface maak je in Java met behulp van verschillende componenten Zoals knoppen, tekstvakken, labels, schuifbalken, keuzelijstjes en randen

4 JPanel De verschillende componenten plaats je in een zogeheten container die alles bij elkaar houdt Een belangrijke container is een JPanel Je kunt aan zo’n JPanel (een paneel) bijvoorbeeld een knop en een label toevoegen

5 Een JPanel maken JPanel paneel; JButton knop; JLabel label; paneel = new JPanel(); knop = new JButton( "klik" ); label = new JLabel("Hartelijk welkom!!"); paneel.add( knop ); paneel.add( label );

6 Een JPanel in een applet AdJava08\WelkomApplet.htm Zie voor details paragraaf Merk op dat je wel op de knop kunt klikken, maar dat er verder weinig reactie is

7 JPanel in applicatie Op ongeveer dezelfde manier kun je een applicatie met dit paneel maken

8 Event-afhandeling Als je het klikken op een knop wilt afhandelen moet je het volgende doen: Je maakt een aparte klasse, een zogeheten event-handler met een methode die actionPerformed() heet Van die klasse maak je een instantie Die instantie koppel je aan de knop Als je dan op de knop klikt zal automatisch de methode actionPerformed() worden aangeroepen

9 De handler class KnopHandler implements ActionListener { public void actionPerformed( ActionEvent e ) { label.setText( "Bedankt!" ); }

10 Een instantie van de handler JButton knop;... knop = new JButton( ”klik” ); KnopHandler kh = new KnopHandler(); knop.addActionListener( kh ); Zie ook paragraaf 8.5

11 Inwendige klasse Een event-handler wordt meestal als inwendige klasse gedefinieerd Dat wil zeggen dat de definitie van de klasse zich bevindt binnen de klasse waarin (bijvoorbeeld) de knop is gedefinieerd waarvan de handler de events afhandelt Het voordeel hiervan is dat een inwendige klasse toegang heeft tot alle (private) attributen van de omhullende klasse

12 Applicatie

13 Applet

14 Meer componenten in een paneel Een gebruikersinterface zal in het algemeen bestaan uit verschillende componenten Als programmeur wil je graag weten waar die componenten in het paneel geplaatst worden

15 Lay-outmanagers Een JPanel heeft een lay-outmanager, een object dat gekoppeld is aan het JPanel De lay-outmanager zorgt voor de plaatsing van de componenten in het paneel De standaard lay-outmanager van een JPanel is FlowLayout

16 FlowLayout FlowLayout begint links boven met het plaatsen van een component en vult de bovenste rij Als de rij vol is gaat hij verder met de volgende rij Net zoals wij lezen of schrijven

17 FlowLayout (1)

18 FlowLayout (2)

19 Lay-outmanager uitschakelen Je kunt de lay-outmanager uitschakelen met setLayout(null) Je moet dan wel voor elke component precies aangeven waar je hem wilt hebben en wat zijn afmeting is Dat is nogal vervelend Bijvoorbeeld: knop = new JButton( "Klik hier" ); knop.setBounds( 100, 10, 120, 20 );

20 Andere lay-outmanagers Er zijn andere lay-outmanagers, zoals BorderLayout GridLayout

21 BorderLayout

22 BorderLayout met 2 componenten

23 GridLayout

24 BorderLayout en GridLayout Zie voor details paragraaf 8.12 en 8.13

25 Invoer van getallen Een tekstvak is een component waar je als gebruiker tekst in kunt tikken Je programma kan de tekst uit het tekstvak opvragen en verder verwerken De tekst komt altijd als String binnen Bij de invoer van een getal als 23 of 3.14 doet zich dus een probleem voor

26 Conversie Je moet de ingevoerde string converteren naar een int of naar een double Omgekeerd kun je vanuit je programma in een tekstvak tekst plaatsen Als je een getal in een tekstvak wilt plaatsen moet je dat eerst converteren naar een String

27 Voorbeeld AdJava08\Optellen.htm Dategene wat je intikt in een tekstvak kun je opvragen met getText() Je krijgt dan een String Met een String-object kun je niet rekenen Je moet de String converteren naar int

28 Conversie van String naar int (1) tekstvakStringint getText() ?

29 Conversie van String naar int String invoerstring1 = invoervak1.getText(); int getal1 = Integer.parseInt( invoerstring1 ); String invoerstring2 = invoervak2.getText(); int getal2 = Integer.parseInt( invoerstring2 ); int resultaat = getal1 + getal2; resultaatVak.setText( "" + resultaat );

30 Conversie: String -> int -> String Klik

31 Conversie van int naar String resultaatVak.setText( “” + resultaat ) lege string int “313”

32 Broncode AdJava08\Optellen\Optellen.docx vak1 vak2 resultaatvak plusknop

33 Object-variabelen Merk op dat in het vorige voorbeeld sommige variabelen bovenin paneelklasse zijn gedeclareerd private JTextField invoervak1, invoervak2, resultaatVak; private JLabel label; private JButton isKnop; Dit zijn objectvariabelen (instance variables)

34 Lokale variabelen public void actionPerformed( ActionEvent e ) { String invoerstring1 = invoervak1.getText(); int getal1 = Integer.parseInt( invoerstring1 ); String invoerstring2 = invoervak2.getText(); int getal2 = Integer.parseInt( invoerstring2 ); int resultaat = getal1 + getal2; resultaatVak.setText( "" + resultaat ); }

35 Einde