Hst 1 Klassen en methoden

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.

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


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

eerste voorbeelden in Java

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

Wat is een grafische gebruikersinterface (GUI)?

Game of Life in Java

Applicaties met een grafische user-interface

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).

Programmeren in Java. De Java-GUI

Een stoomcursus door Edgar de Graaf, november 2006

Java Objectgeoriënteerd ontwerpen en programmeren

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

Swing.

X. Grafische elementen

Opdracht 7a. Applicatiebouw 2014/2015

IMP Uitwerking week 13

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

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

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

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

Graphics. Small Basic graphics 1/6

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

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

HOOfDsTuk 1 Objecten en klassen

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

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

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

Overerving & Polymorfisme

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

Vakgroep CW KAHO Sint-Lieven

10 Exception handling

Technical Computing. Technical Computing Team emazing 1

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Ingebouwde klassen & methodes

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

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

Programmeren in Java 3

Foto s verkleinen en Foto s in elkaar over laten lopen

Deel 5: PowerPoint Scannend

Werken met een touchpad in Windows XP

NEW. METRIC standard(mm).ipt. Dit staat bij PART

BEGINNER JAVA Inhoudsopgave

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object

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

Bij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving.

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

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

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

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Kennismaken Greenfoot

Handleiding IrfanView. IrfanView is een applicatie om grafische bestanden te bekijken, te bewerken en opnieuw op te slaan.

Zelftest Programmeren in Java

Bouw van een interactief prototype van een Userinterface met Eclipse/Java

OPDRACHTKAART. Thema: Prepress. Illustrator 2. De vulling van een object veranderen Werken met padtekst PP

INLEIDING TOT GEOGEBRA

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Objectgeoriënteerd programmeren in Java 1

Laatste afbeelding. Zelfstudiedetails

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

1 Objectgeoriënteerd programmeren met Java

Objectgericht programmeren 1.

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur

Programmeren in Java deel 2

Labo 2 Programmeren II

OPDRACHTKAART. Thema: Prepress. Photoshop 2. Selecteren, verplaatsen en roteren PP Voorkennis: Introductie Photoshop (6.0) afgerond.

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

Titel: Workshop creatief met MS Word Auteur: Miriam Harreman / Jaar: 2009 Versie: Creative Commons Naamsvermelding & Gelijk

Scala. Korte introductie. Sylvia Stuurman

Hoe maak ik een fotocollage met Pixlr?

10. Een pagina toevoegen op je winkelsite

Werken met een touchpad Bezitters van een laptopcomputer kunnen zowel een muis als het touchpad van de laptop gebruiken om Windows te bedienen.

Modelleren en Programmeren

Head Pilot v Gebruikershandleiding

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

Informatica. Les 3. Elektronica Overschrijven - GUI. Jan Lemeire Informatica februari mei Parallel Systems: Introduction

Handleiding AVANCE Service desk. (ticketing portal)

Klassen. Hoofdstuk Klassen

Deel 4: PowerPoint Bladerboek

Handleiding Albupad - Album Page Designer versie 1600

Oefeningenexamen Informatica: juni 2015

WELKOM BIJ UNICODING PROCESSING. Unicoding 1. Handleiding docent LES 1 DEEL A: Vormen, coördinaten en kleuren

NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009

Informatica: C# WPO 8

lesboek Jonker & Wu CAD support

Handicom. Symbol for Windows. Image Manager. (Versie 4) Handicom, 2011, Nederland

Beschrijving JabberPoint met inwerkopdracht (versie 1.6)

Modelleren en Programmeren

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

Inhoud leereenheid 8. Programmeren in JavaLogo (1) Introductie 73. Leerkern 75. Samenvatting 94. Zelftoets 95. Terugkoppeling 97

Modelleren en Programmeren

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

Hoe maak je Vintage Vector Kroonkurken in Illustrator en AD door Joshua Bader

6. Reeksen

Transcriptie:

Onderzoekscompetenties Introductie tot java Proeven uitwerken en presenteren Hst 1 Klassen en methoden De bedoeling van dit eerste hoofdstuk is om een eerste programmaatje te schrijven, en om een aantal basisbegrippen te leren. Klassen uit de bibliotheek van Java javax.swing.jbutton javax.swing.jframe javax.swing.jtextarea javax.swing.jtextfield een knop waarop de muis kan klikken een programmavenster een tekstgebied een tekstvenster Methoden uit dit hoofdstuk setlocation() setsize() settext() settitle() settooltiptext() add() gettext() main() setvisible() setdefaultcloseoperation() stelt de plaats in van het venster op het scherm stelt de afmetingen van het venster in stelt de tekst in van het object stelt de tekst in van de titelbalk stelt de tekst in van een scherminfovakje bij een object voegt een object toe aan een paneel geeft de tekststring van een object start het programma stelt een object in op zichtbaar of niet bepaalt het effect van het sluitvak van het venster

1.1 Project starten Open Eclipse en kies New en vervolgens uit het zijmenu Java Project. In het dialoogvenster kan je de naam van het project kiezen, in ons geval 6lwiProject Binnen het project kunnen we een verdere indeling maken, de zogenoemde packages. Het ligt voor de hand dat we een groepering maken per les. Selecteer met de muis het project 6lwiProject. Klik met de rechtermuisknop, kies New en vervolgens Package. Noem de package les01 en klik op finish 1.2 Klassen Het maken van een Java-programma komt neer op het schrijven van klassen. Een klasse beschrijft voor een gedeelte van het programma wat het programma kan en hoe het programma dat doet. Een van de voordelen van Java is dat er een enorme voorraad aan bestaande klassen is die de programmeur kan gebruiken of waarop je verder kan bouwen. Die klassen zijn opgeslagen in zogeheten klassenbibliotheken, in het Engels class libraries genoemd. Bij elke nieuwe versie van Java worden er nieuwe klassen toegevoegd. Maak een nieuwe klasse: rechtsklik op de package-naam en kies New>Class Noem de klasse Kopieer en druk op Finish Tik in het bewerkingsveld de volgende tekst in: package les01; import javax.swing.jframe; public class Kopieer extends JFrame public Kopieer() JFrame venster=new JFrame(); venster.setsize(450,75); venster.setdefaultcloseoperation(jframe.exit_on_close); venster.settitle("kopieervenster"); venster.setlocation(100,100); venster.setvisible(true); public static void main(string[] args) new Kopieer(); Toont Eclipse een foutsymbooltje aan het begin van de regel, kijk dan nauwkeurig de tekst na. Zijn er geen foutaanduidingen meer, dan kan je het programma uitvoeren. Klik daartoe op de knop Run op de knoppenbalk. (Always save recources before launching)

1.3 Methoden Een belangrijk onderdeel van klassen zijn methoden. Een methode voert een bepaalde taak uit. Het is goed programmeergebruik om methoden te maken die één ding doen, dus per taak een aparte methode. Net als een klasse heeft een methode een header - de bovenste regel en een body, aangegeven met accolades. Een methode kan je herkennen aan de haakjes die er altijd staan. Tussen die haakjes staan de gegevens voor de methode die ze nodig heeft om een bepaalde taak uit te voeren. Vaak staat er dus tussen die haakjes iets vermeld, maar lang niet altijd. Als er tussen die haakjes niets staat mag je ze toch niet weglaten. 1.3.1 Methode main() De methode main() is een bijzondere methode. Een programma bestaat uit verschillende klassen en de compiler moet weten waar hij moet beginnen. In Java is de afspraak gemaakt dat het begin van een programma wordt aangegeven met een methode main(). Deze heeft een vaste header: public static void main( String[] args) 1.4 Met new maak je objecten Java is, net als bijna alle programmeertalen, objectgeoriënteerd. Dat betekent dat bij de uitvoering van het programma alles gebeurt via objecten. Een object kan verschillende dingen voorstellen. Het kan een verkeersbord voorstellen, een patiënt, een venstertje van Windows of de tekst die in dit Windowsraampje staat, Kortom van alles dat je je maar kan voorstellen kan je een object maken. Toch komt het woord object niet voor in de taalelementen van Java. Je beschrijft klassen en van die klassen maakt Java een object. Alle objecten kan je dan bewerken met methodes. Als je bijvoorbeeld met objecten zou werken die patiënten voorstellen, kan je op een patiënt een ziekte plakken, of een voorgeschiedenis raadplegen, enz. Als je een nieuw object wil maken moet je het woord new gebruiken. Het object wordt dan opgebouwd. Maar hoe? Welk bouwplan moet de computer gebruiken? Je kan het misschien al raden: om deze taak te volbrengen heb je een methode nodig. Deze speciale methode om objecten op te bouwen, noemen we een constructor. Laat ons eens een voorbeeld geven. Stel je werkt in een hondenasiel. Elk dier kenmerkt zich met een naam, een kleur en een ras. Je wil drie dingen doen. In de eerste plaats wil je nieuwe hond construeren, van het moment dat er eentje nieuw binnenkomt. Vervolgens kan je de naam van de hond ingeven en tenslotte het ras opvragen. De klasse zou er dan zo kunnen uitzien:

public class Hond private String naam; private String kleur; private String ras; public Hond() naam = ; kleur = ; ras = ; public void geefnaam(string nieuwenaam) naam = nieuwenaam; public String geefras() return ras; 1.5 Venster met inhoud We gaan nu het programma kopieer uitbreiden. De bedoeling is dat we een venster laten zien met twee tekstvelden en één actieknop. Als je op de actieknop klikt zou de tekst die in het linkervak staat, gekopieerd moeten worden naar het rechtervak. (zie figuur) We hebben al een eerste klasse gemaakt (het venster oftewel een JFrame). Nu maken we een tweede object, nl. een vensterinhoud (JPanel). We bepalen wat de vensterinhoud zal worden dus ons object is in feite een uitbreiding van een JPanel. Maak een nieuwe klasse aan. Noem deze KopieerPaneel (let op de hoofdletters) Geef de volgende broncode in:

package les01; import javax.swing.*; public class KopieerPaneel extends JPanel private JTextField veld1; private JTextField veld2; private JButton actieknop; public KopieerPaneel() actieknop = new JButton(">>Kopieer>>"); veld1 = new JTextField(13); veld2 = new JTextField(13); add(veld1); add(actieknop); add(veld2); Pas ook de klasse Kopieer aan door er enkele regeltjes aan toe te voegen: package les01; import javax.swing.jframe; public class Kopieer extends JFrame public Kopieer() JFrame venster=new JFrame(); venster.setsize(450,75); venster.setdefaultcloseoperation(jframe.exit_on_close); venster.settitle("kopieervenster"); venster.setlocation(100,100); KopieerPaneel inhoudvenster = new KopieerPaneel(); venster.add(inhoudvenster); venster.setvisible(true); public static void main(string[] args) new Kopieer(); Oefening: Wanneer een gebruiker de muisaanwijzer even stilhoudt op een element in het venster van een programma, verschijnt er in veel moderne programma s een geel vakje met een toelichting. Zo n vakje noemen we tooltip. In Java kan elk element dat in een venster wordt geplaatst een tooltip bij zich krijgen. Daarvoor is de methode settooltiptext() beschikbaar. Als parameter krijgt deze methode de tekststring die moet worden getoond. Geef de twee tekstvelden en de knop een tooltip.

1.6 Gebeurtenisafhandeling De gebruiker kan diverse acties uitvoeren. Hij kan tekst typen, de muis bewegen, klikken, een schuifbalk verschuiven, Deze acties veroorzaken in het programma een zogeheten event. Events zijn gebeurtenissen waarop het programma kan reageren. Maar niet na elke actie van de gebruiker hoeft het programma iets te doen. In ons voorbeeldprogramma moet het allen reageren als je klikt op de actieknop >>Kopieer>> Wil je dat een bepaald element reageert op een actie, dan moet je een zogeheten listener aan dit element koppelen. Het is niet voldoende te schrijven wat er precies gedaan moet worden bij een actie. Je moet er ook voor zorgen dat een knop kan voelen of luisteren of er een klik op plaatsvindt. Verander de klasse KopieerPaneel als volgt: package les01; import java.awt.event.*; import javax.swing.*; public class KopieerPaneel extends JPanel implements ActionListener private JTextField veld1; private JTextField veld2; private JButton actieknop; public KopieerPaneel() actieknop = new JButton(">>Kopieer>>"); actieknop.addactionlistener(this); veld1 = new JTextField(13); veld2 = new JTextField(13); add(veld1); add(actieknop); add(veld2); public void actionperformed(actionevent e) veld2.settext( veld1.gettext() ); Oefening: De tekstvelden van de oefening zouden we willen veranderen in tekstgebieden (JTextArea). De klasse JTextArea kan je aanroepen met twee gehele getallen als parameter, bijvoorbeeld JTextArea(3,13). Het eerste getal geeft de hoogte aan van het gebied, het tweede de breedte. Verander het voorbeeld van dit hoofdstuk zodanig dat je twee keer een JTextArea hebt i.p.v. twee keer een JTextField.

Hst 2 Rekenen We leren in dit hoofdstuk hoe we getallen kunnen inlezen en op welke manier bewerkingen mogelijk zijn. Klassen uit de bibliotheek van Java javax.swing.jlabel javax.lang.math een tekstlabel op een paneel diverse wiskundige bewerkingen Methoden uit dit hoofdstuk append() parsedouble() parseint() setwrapstyleword() voegt tekst toe aan een JTextArea haalt een double-getal uit een tekst haalt een integer-getal uit een tekst bepaalt woordomslag bij een JTextArea 2.1 Programma om de wrijvingscoëfficiënt te berekenen Maak een nieuwe package aan, nl. les02 Maak de volgende klassen aan: - opstartklasse HoofdvensterBerekenWrijvingscoef (want deze bevat de methode main) - klasse CentraalPaneel (vensterinhoud) 2.1.1 HoofdvensterBerekenWrijvingscoef package les02; import javax.swing.*; public class HoofdvensterBerekenWrijvingscoef extends JFrame public HoofdvensterBerekenWrijvingscoef() JFrame venster=new JFrame(); venster.setsize(250,200); venster.setdefaultcloseoperation(jframe.exit_on_close); venster.settitle("bereken de wrijvingscoëfficiënt"); venster.setlocation(100, 100); PaneelBWC vensterinhoud= new PaneelBWC(); venster.add(vensterinhoud); venster.setvisible(true); public static void main(string[] args)

new HoofdvensterBerekenWrijvingscoef(); 2.1.2 CentraalPaneel package les02; import java.awt.event.*; import javax.swing.*; import java.lang.math; public class PaneelBWC extends JPanel implements ActionListener private JTextField inputveld; private JTextField outputveld; private JButton actieknop; public PaneelBWC() actieknop = new JButton(">>Bereken>>"); actieknop.addactionlistener(this); inputveld = new JTextField(3); outputveld = new JTextField(3); add( new JLabel("Geef de maximale hellingshoek")); add(inputveld); add(actieknop); add( new JLabel("De wrijvingscoëfficiënt is : ")); add(outputveld); public void actionperformed(actionevent e) int hoek; double wrijvingscoef; hoek = Integer.parseInt( inputveld.gettext() ); wrijvingscoef = Math.round( 100.0*Math.tan(hoek * Math.PI /180.0))/100.0; outputveld.settext( ""+wrijvingscoef ); 2.2 JLabel Elementen als knoppen en tekstvelden hebben bijna altijd een toelichtende tekst bij zich die aangeeft waar het element voor bedoeld is. Java kent hiervoor het JLabel. Een JLabel kan niet reageren op een muisklik, het is zuiver bedoeld als toelichting. De tekst van een JLabel kan met de methode settext() worden gewijzigd, maar meestal blijft haar tekst onveranderd. Een nieuw object van het type JLabel kan gemaakt worden door als parameter de tekst op te geven die hij moet tonen. new JLabel("Geef de maximale hellingshoek") Een JLabel kan tegelijk in één opdracht gecreëerd worden en toegevoegd aan het paneel. Dat kan je zien in het programma. add( new JLabel("De wrijvingscoëfficiënt is : "));

2.3 De methode parseint() De methode parseint() heeft als parameter een tekst en levert een geheel getal terug. De methode parseint() is geen methode bij een object van het type JTextField, maar hoort bij een speciale klasse met de naam Integer die rechtstreeks kan worden aangeroepen. De methode parsedouble() werkt op gelijkaardige manier als parseint(), maar maakt van een tekst een reëel getal. Ze behoort toe aan de klasse Double. Double.parseDouble( 0.26 ); 2.4 De klasse Math Deze klasse bevat allerlei methodes om berekeningen los te laten op getallen. De sinus van pi berekenen bijvoorbeeld: Math.sin( Math.PI ) Ook afrondingen zijn mogelijk, absolute waarde nemen, enz. 2.5 Oefening Als je een kist op een hellend vlak plaatst, een vast hangt aan een touw (zie tek). Dan werken er een aantal krachten op de kist. We nemen aan dat er geen wrijving is. Schrijf een programma met twee invoervelden: één waarin je de massa opgeeft van een voorwerp, een ander waar je de helling kan invoeren. De bedoeling is dat je de drie krachten berekent en weergeeft in een JTextArea Als je in een JTextArea regels onder elkaar wil krijgen, moet je actie ondernemen. Een mogelijkheid hiervoor is om op bepaalde plaatsen een regelovergang in te lassen: uitvoerveld.settext( Boven\nOnder ); Deze opdracht zal de tekst boven en onder boven elkaar plaatsen. Er is ook een andere manier. Je kan de functie tekstomslag aanzetten. Daarvoor zijn twee methoden beschikbaar: uitvoerveld.setlinewrap(true); uitvoerveld.setwrapstyleword(true); De eerste opdracht betekent dat er net zo veel letters komen als er passen op een regel. De rest verspringt naar de volgende, ook al is dat midden in een woord. Meestal is dat niet gewenst, vandaar de tweede opdracht. Zo blijven woorden bij elkaar.

Hst 3 Tekenen We leren in dit hoofdstuk hoe we op een paneel ovalen, rechthoeken, lijnen, enz. kunnen tekenen. Klassen uit de bibliotheek van Java java.awt.color levert kleuren Methoden uit dit hoofdstuk drawarc() drawline() drawoval() drawrect() getwidth() fillarc() fillrect() filloval() getheight() paintcomponent() tekent een boog tekent een lijn ellips tekenen teken rechthoek geeft de breedte in pixels van een JComponent tekent een gevulde boog tekent een gevulde rechthoek tekent een gevulde ellips geeft de hoogte in pixels van een JComponent tekent de grafische context 3.1 Tekenen Op een paneel hebben we tot nu toe elementen als knoppen en tekstvelden geplaatst. Je kan ook lijnen, ovalen, rechthoeken en bogen tekenen. De pixels op een paneel zijn als het ware horizontaal en verticaal genummerd. Het beginpunt ligt linksboven. Een plaats op het paneel wordt aangegeven door twee getallen. Het punt in de linkerbovenhoek is (0,0). Het eerste getal geeft de horizontale positie aan, Het tweede de verticale. 3.2 De grafische context Wat een programma inhoudelijk allemaal doet, mag de programmeur zelf bepalen. Maar dat ligt anders bij het tekenen op het scherm. Dat komt omdat je niet de enige bent die bepaalt wat er zichtbaar is op het scherm van de computer, ook niet voor het venster van uw programma. (Java zorgt voor het tekenen van elementen, het besturingssysteem bedekt vensters soms met andere vensters, de gebruiker kan vensters vergroten, ) De tekenopdrachten van je Java-programma neem je op in de methode paintcomponent(). Deze methode wordt automatisch aangeroepen wanneer een paneel voor het eerst getoond wordt of wanneer een wijziging het nodig maakt om het paneel opnieuw te tekenen

De eerste drie regels van de methode zien er als volgt uit: public void paintcomponent(graphics g) super.paintcomponent(g); De klasse graphics bevindt zich in de bibliotheek awt en daarom moet je de volgende import-regel gebruiken: import java.awt.*; 3.3 Rechthoek tekenen Maak een package aan les03 Het volgende programma tekent een vierkant van een bepaalde grootte. Hoofdklasse VensterTekenVierkant package les03; import javax.swing.*; public class VensterTekenVierkant extends JFrame public VensterTekenVierkant() JFrame venster = new JFrame(); venster.settitle("teken vierkant"); venster.setlocation(100, 100); venster.setdefaultcloseoperation(exit_on_close); venster.setsize(140,200); venster.add(new PaneelTekenVierkant()); venster.setvisible(true); public static void main(string[] args) new VensterTekenVierkant(); Tweede klasse PaneelTekenVierkant package les03; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PaneelTekenVierkant extends JPanel implements ActionListener private JTextField veldzijde; private int zijde=20; private JButton tekenknop; public PaneelTekenVierkant()

veldzijde = new JTextField("20",3); tekenknop = new JButton("Teken vierkant"); tekenknop.addactionlistener(this); add(new JLabel("Geef de zijde van het vierkant:")); add(veldzijde); add(tekenknop); public void actionperformed( ActionEvent e) zijde= Integer.parseInt(veldZijde.getText()); repaint(); public void paintcomponent(graphics g) super.paintcomponent(g); g.drawrect(10, 10, zijde, zijde); 3.4 Oefening Maak gebruik van het vorige programma, om bv een cirkel te tekenen met een opgegeven straal, of een rechthoek waarbij je de breedte en hoogte zelf kunt ingeven. Als je de kleur wilt veranderen kan je de volgende instructie gebruiken: g.setcolor(color.black);