Wat is een grafische gebruikersinterface (GUI)?



Vergelijkbare documenten
Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

IMP Uitwerking week 13


public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Zo vind u hierin de volgende documentatie over de klasse Applet: +----java.awt.panel java.applet.applet

Een stoomcursus door Edgar de Graaf, november 2006

Programmeren in Java. De Java-GUI

Applicaties met een grafische user-interface

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Zelftest Programmeren in Java

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Swing.

Een eerste applicatie

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

Opdracht 7a. Applicatiebouw 2014/2015

eerste voorbeelden in Java

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Formulieren maken met Dreamweaver CS 4/CS 5

SYNTRA-WEST. Initiatiecursus JAVA. Deel

Abstracte klassen & Interfaces

Ontwerp van Informatiesystemen

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;

Game of Life in Java

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Klassen. Hoofdstuk Klassen

Programmeren in Java 3

Het Wepsysteem. Het Wepsysteem wordt op maat gebouwd, gekoppeld aan de gewenste functionaliteiten en lay-out van de site. Versie september 2010

Kleine cursus PHP5. Auteur: Raymond Moesker

Overerving & Polymorfisme

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Formulieren maken met Dreamweaver CS 4

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Handleiding wordpress

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

HvA Instituut voor Interactieve Media ActionScript 3.0

tentoinfinity Apps 1.0 INLEIDING

Modelleren en Programmeren

VI. Klassen en objecten

Inhoud leereenheid 2. Overerving (1) Introductie 59. Leerkern 60. Samenvatting 88. Zelftoets 90. Terugkoppeling 94

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

MWeb 4.0. Handleiding Basis Modules Versie 1.0

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Java Objectgeoriënteerd ontwerpen en programmeren

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

Tutorial 1, Delphi: Geldspraak

Extra oefening Boek: Neem de opgaven van hoofdstuk 1 en 2 door om je de stof beter eigen te maken. Programmeer zelf voorbeeld 0204.

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

INFITT01 - Internettechnologie WEEK 8

Macro s. 4.2 Een macro maken

Programmeren in Java 3

Programmeren in C# Interfaces. Hoofdstuk 23

6.2 VBA Syntax. Inleiding Visual Basic

Handleiding Wordpress CMS

Zelfstudie Boek: Hoofdstuk 1 tm. 3.5 uit het boek Aan de slag met Java (Gertjan Laan).

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Grafisch programmeren met GTK

Een fragment wordt afgeleid van de basis klasse "Fragment".

Release notes Swing & 5.0.7

Technical Computing. Technical Computing Team emazing 1

Een pagina toevoegen en/of bewerken.

e-balie 3.0 Aan de slag

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

De categorie Forms in het paneel Insert

Lezen tussen dag 2 en dag 3 Boek: Hoofdstuk 3 en 4 tm. 4.2 uit het boek Aan de slag met Java (Gertjan Laan).

Gebruikershandleiding BosorNet

Programmeren in Java 3


6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Hoofdstuk 1: Een eerste Visual Basic project

Hoofdstuk 1: Een eerste Visual Basic project

APPLICATIEBOUW 7E COLLEGE: OEFENEN VOOR DE TOETS. Onderdeel van SmartProducts

Handleiding Mijneigenweb.nl

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Inhoud van de website invoeren met de ContentPublisher

Modelleren en Programmeren

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters

Modelleren en Programmeren

APPLICATIEBOUW 7E COLLEGE: DPU3, OEFENEN TOETS. Onderdeel van SmartProducts

Modelleren en Programmeren

Bitrix Site Manager gebruikershandleiding BureauZuid

Basis handleiding CMS

Handleiding Joomla CMS

Handleiding dashboard. 3WA SaaS platform

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports)

Het Prikbord in AllSolutions

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

Formulieren en waarden posten naar een view

In de Metabar staan de navigatiebalk, informatiepagina s en een balk met een zoek- en inlogde gebruikersmenu.

Vakgroep CW KAHO Sint-Lieven

Quick start handleiding versie 1.0

Labo 2 Programmeren II

Een website maken met databasetoegang.

Snel aan de slag Web Financieel 1.2

Quickstart. Browser instellingen

Transcriptie:

Wat is een grafische gebruikersinterface (GUI)? GUI is een Engelse afkorting voor Graphical User Interface, oftewel grafische gebruikersinterface. Het is de term voor het bedieningspaneel van een computerprogramma. Het vormt de brug tussen de computer en de gebruiker. Het maakt gebruik van grafische elementen die het gebruik van het programma moeten vergemakkelijken. Grafische elementen zijn o.a. menu s, knoppen, selectielijsten, tekstvelden, aanvinkboxjes (checkboxes) en afbeeldingen. Waarom een GUI? Een GUI heeft de volgende functies, in willekeurige volgorde: Een grafisch overzicht geven van de beschikbare programmafuncties Het bestuurbaar/bedienbaar maken van een applicatie Gebruikersinput vereenvoudigen Output weergeven Waaruit is een GUI opgebouwd? De onderdelen van de Java GUI vormen een complexe klassenhierarchie, zoals je in de onderstaande figuur kunt zien. 1 van 8

Figuur 1 Op het op één na hoogste niveau vind je de belangrijkste. Component De Component s zijn de echte dingen, die je ook als een soor fysiek object ziet. De klasse Component heeft diverse subklassen als Button, Checkbox, TextFiel, Textarea, Label enz. De rest is nodig om ze te maken (kleur, tekst, positie, ). De Component s vormen ook nog een grote klasse. Container Een container behoort tot de klasse Component en kan weer andere dingen in zich houden. Componenten worden gevat in een container dus containers bevatten componenten. 2 van 8

Applet Layout manager Een applet is een voorbeeld van een container maar ook een frame zoals je in de imageviewer hebt gezien. Iedere container heeft een layoutmanager die bepaalt hoe de verschillende componenten ten opzichte van elkaar worden gepositioneerd. Er zijn verschillende manieren om iets zichtbaar te maken zoals je kunt zien in de bovenstaande tekening. Dialogen worden bijvoorbeeld gebruikt om de gebruiker een bericht mee te geven. Applets openen in de browser en kunnen via html pagina s zichtbaar worden gemaakt op het internet. Window Frame Een Window, ook een soort Container, is een gebied zonder menu of titelbalk, waarop componen ten geplaatst kunnen worden. Het wordt voornamelijk gebruikt voor pop-up berichten. Een Frame is in principe een Window, maar dan met alle gebruikelijke eigenschappen van een zelfstandig venster: titelbalk, randen, minimimaliseerr/maximaliseer/afsluit-knoppen rechts bovenin. Verder kan een Frame een aangepaste muiscursor hebben, eventueel een menubalk en een icoon in de titelbalk. Een Frame wordt doorgaans gebruikt voor applicaties (in tegenstelling tot applets). AWT/Swing Meestal zullen we gebruik maken van de nieuwste grafische omgeving van Java, Swing, gebruik zullen maken en niet de wat oudere en meer beperkte AWT (Abstract Window Toolkit). Elke grafische applicatie met Swing is een extensie van een JFrame of een Japplet. Swing is, net als AWT, een GUI-toolkit en onderdeel van de Java Foundation Classes (JFC). Het is geschreven in pure Java-code, waardoor Swingapplicaties er hetzelfde uitzien op elk platform. Swing wordt beschouwd als de opvolger van AWT, maar eerder als een soort uitbreiding dan een vervanger. Immers, Swing s JComponent klasse erft (extends) alle eigenschappen van AWT s Component klasse. Om onderscheid te maken tussen de twee toolkits, worden Swing s componenten voorafgegaan door een J, als in: JButton, JTextField, etc. Om iets zichtbaar te kunnen maken moet je een aantal dingen doen: Je moet het object maken (met new). Als je de grootte niet bepaalt, blijft het een heel klein venster. Met onzichtbare vensters kun je echt heel weinig. Subklasse In Java worden klassen afgeleid van weer andere klassen. De afgeleide klassen worden subklassen (derived classes) genoemd. Superklasse Zij zijn afgeleid van een andere (super)klasse. De subklasse bevat vaak specifieke methoden voor de desbetreffende klasse. Wanneer vervoermiddel() de superklasse is, kunnen bijvoorbeeld auto() en fiets() subklassen zijn. De subklasse erft alle velden en methoden van de bijbehorende superklasse. In de leertaken Dialogen is Jframe de superklasse van Dialoogvenster. Dat betekent dat Dialoogvenster constructormethoden van JFrame kan gebruiken. Constructormethoden van Jframe vind je in figuur 3. 3 van 8

Super() Een verwijzing naar een constructor van de superklasse gebeurt door het keywoord super() of super(parameterlijst) waarin de parameterlijst verwijst naar de parameters in een constructormethode van de superklasse. Overerving Het bovenstaande wordt overerving genoemd. Overerving betekent dus dat nieuwe klassen worden gebaseerd op andere, bestaande klassen. Dit leidt tot hergebruik van code en brengt klassen met elkaar in verband. Dialog FileDialog Een Dialog is een pop-up dialoogvenster, onderdeel van Window, dat berichten (in de vorm van waarschuwingen, vragen of foutmeldingen) kan weergeven en de gebruiker kan vragen om actie (bevestiging of een keuze). Een Dialog kan modal zijn, dat wil zeggen dat de Dialog op de voorgrond blijft staan totdat de gebruiker actie onderneemt. Ondertussen kan de gebruiker geen andere vensters selecteren of aanklikken. Deze functionaliteit is in te bouwen met de programmeerinstructie setmodal. Een FileDialog is een voorgedefiniëerde Dialog, bestemd voor interactie met het bestandssysteem van de computer. Het kan een Open of Opslaan-functie hebben (al naar gelang de wens van de programmeur). FileDialogs worden in principe alleen gebruikt in applicaties. Applets kunnen door ingebouwde veiligheidsmaatregelen niet communiceren met het bestandsssysteem van de computer. Menu Een Menu is te vinden bovenaan een applicatievenster en huisvest diverse opties. Het bestaat uit een balk met categorieën, met daaronder een lijst specifieke opties, de MenuItems, al dan niet van elkaar gescheiden door een lijn (Separator). Optioneel kan een Menu een tear-off mogelijkheid bevatten. Dat wil zeggen dat het menu weg te slepen is van zijn oorspronkelijke locatie en overal neergezet kan worden. Dit wordt echter niet door elk platform ondersteund. Eveneens kan een Menu gebruik maken van keyboard short-cuts, oftewel sneltoetsen. figuur 2 4 van 8

In het programma Dialoogvenster_1.java bevat de titelbalk van het menu geen tekst. Het is handig om een titel mee te geven aan een dialoogscherm. De klasse Dialoogvenster is een uitbreiding van de klasse JFrame. In de klasse Dialoogvenster staat geen aparte methode gedefinieerd welke een titelbalk kan plaatsen. Dat hoeft ook niet want in Java kan worden verwezen naar de superklasse, in dit geval Jframe. Figuur 3: Constructor summary Overloading In figuur 3 zie je dat er verschillende constructormethoden jet dezelfde naam Jframe() bestaan. Het naast elkaar bestaan vann methoden met dezelfde naam maar met verschillende parameters (zie bovenstaande figuur) heet overloading. Nog meer componenten. Canvas Panel Label De Canvas klasse is slechts een leeg gebied waarop grafische elementen of speciale componenten geplaatst kunnen worden, zoals afbeeldingen en getekende vormen en lijnen, die eventueel klikbaar gemaakt kunnen worden door de muisklikken te registreren en te koppelen aan een event. Een Panel is een soort Container, een rechthoekig gebied waar andere componenten in geplaatst kunnen worden. Het is de grafische bouwsteen van een applet. Componenten zoals bijvoorbeeld Buttons worden gepositioneerd op het Panel, welke weer getoond wordt door de browser of applet viewer. Wellicht de meest eenvoudige component. Het doet niets meer dan een regel tekst op het scherm zetten, bijvoorbeeld voor de beschrijving van een tekstveld of keuzeknop. De Label component heeft enkele attributen die aanpasbaar zijn: lettertype (Font), lettergrootte en de kleur. TextComponent: TextField en TextArea De TextComponent klasse huisvest twee componenten: TextField en TextArea. Beiden zijn bedoeld voor gebruikersinvoer en -uitvoer. 5 van 8

Met een seteditable instructie kun je aangeven of het tekstveld bestemd is voor invoer of uitvoer. TextField kan maximaal één regel tekst aan invoer verwerken of tonen, terwijl TextArea meerdere regels kan verwerken of tonen. Deze componenten hebben o.a. de aanpasbare attributen lettertype, lettergrootte en kleur. De methode main public static void main(string args [ ] ){ } De main methode is een methode die ervoor zorgt dat elk java programma start. De methode is public omdat het toegankelijk moet zijn voor de Java Virtual Machine om de executie van een programma te starten. De Java Virtual Machine is de toepassing die het java programma uitvoert. De methode is static omdat er geen instantie nodig is voor de executie van een programma. Voor iedere andere methode aanroep is een objectinstantie noodzakelijk. Een klasse zou niet gerund kunnen worden zonder de creatie van een objectinstantie van die klasse als de main methode niet static was. De methode main is void. Wanneer de main methode is uitgevoerd, stopt het programma. Om die reden kan de main methode geen data teruggeven. Een void methode heeft geen terugkeer (return) waarde. De parameter String args[ ] : de gebruiker mag parameters toevoegen. This Binnen een methode of een constructormethode, verwijst het woord this naar het object wiens methode of constructor wordt aangeroepen. In ons voorbeeld staat in de body van de constructor methode class CirkelCanvas extends Canvas { JPanels_1 fr; CirkelCanvas(JPanels_1 fr) { this.fr = fr; } De regel this.fr = fr; is een assignment statement (een toekenningsopdracht). Het wijst de waarde aan de rechterkant van het = teken toe aan de variabele aan de linkerkant. Een algemene vorm van een toekenningsopdracht ziet er als volgt uit: 6 van 8

<veranderlijke> = <uitdrukking> De <uitdrukking> kan een constante waarde zijn (bijv. int temperatuur = 20) maar ook een veranderlijke waarde. In het cirkelprogramma wordt deze assignment gebruikt om duidelijk te maken dat hier wordt verwezen naar het object JPanels_2 fr. Eigenlijk staat er dus dat met de parameter JPanels_1 fr in de constructormethode verwijst naar de instantie JPanels_1 fr in de klasse CirkelCanvas. Event afhandeling Er zijn een aantal klassen betrokken bij de afhandeling van events. java.awt.event Interface ActionListener De klasse die geintereseerd is om een actie (ActionEvent) uit te voeren implementeert de bovenstaande interface, Het object dat de actie moet uitvoeren roept de methode actionperformed (Action event e) aan. Het object in de interface waarop de event (gebeurtenis) plaatsvindt krijgt de ActionEvent. java.util Class EventObject java.lang.object java.util.eventobject (Deze klasse bevat de methode: getsource() zoals je hieronder kunt lezen. Deze methode vraagt op welk object de gebeurtenis moet worden afgehandeld) getsource public Object getsource() The object on which the Event initially occurred. 7 van 8

Containers Een container is een component die andere componenten in zich heeft. Applets en Windows zijn voorbeelden van containers. Een toplevelcontainer is het hoogste niveau container. Swing definieert twee typen containers. Het eerste type wordt Top-level containers (JFrame, JApplet, JWindow en JDialog) genoemd. Deze top-levelcontainers erven niet van Jcomponent (Zie figuur 1). Zij erven wel over van de AWT klassen (AWT is de voorloper van Swing). Een top-level container is de hoogste container in hierarchie en zit in geen enkele andere container. Iedere container moet beginnen met zijn top-levelcontainer. De meest voorkomende in applicaties zijn JFrame en JApplet. Een tweede type containers zijn de containers die wel van Jcomponent overerven. Zij worden in figuur 1 niet genoemd. Het zijn JPanel, JScrollPane en JRootPane. Dit type container kan voorkomen in een andere container. Zij worden veel gebruikt om componenten te organiseren. ContentPane Iedere top-level container heeft een ContentPane in zich welke de visuele componenten van de GUI bevat. Met de methode add voeg je componenten aan het ContentPane toe. 8 van 8