[java] rechthoek afbeelden

Moderators: jkien, Xilvo

Gebruikersavatar
Berichten: 2.902

[java] rechthoek afbeelden

Ik heb de volgende opgave in mijn cursus staan:

Schrijf een programma waarin je gebruik maakt van een methode voor het afbeelden van een rechthoek op het scherm.

Mijn vraag: Hoe begin ik aan zoiets ? In mijn cursus staat niks over een bestaande drawing methode ofzo, kan er iemand mij iets meer over vertellen en hoe ik dat dan juist moet programmeren.

Gebruikersavatar
Berichten: 4.810

Re: [java] rechthoek afbeelden

De klasse Graphics kan dat :D

http://java.sun.com/j2se/1.5.0/docs/api/ja...t/Graphics.html

drawRect(int x, int y, int width, int height) om precies te zijn :P

Gebruikersavatar
Berichten: 2.902

Re: [java] rechthoek afbeelden

Waarschijnlijk een domme vraag maar ik kan niet direct een antwoord vinden.

Ik heb een klein programma voor het tekenen van mijn rechthoek, dit is geschreven in JCreator en wanneer ik mijn bestand run dan gebeurd dit standaard in het cmd-venster.

Hier kun je geen grafische zaken weergeven, waar kan ik kijken of mijn rechthoek geslaagd is ?

Gebruikersavatar
Berichten: 4.810

Re: [java] rechthoek afbeelden

Dat gaat wel, dan krijg je een extra kadertje tezien met je figuur. Maar dat is best wel nogal een stukje extra code. Ik heb hier wel wat stukken code staan, maar volgens mij is het niet de bedoeling dat je zo ver gaat (je hebt bv overerving nodig om het JPanel te extenden en ik vermoed dat je nog niet zo ver zit).

Ik zat zo net te denken of men niet gewoon wil dat je zelf een methode schrijft die aan de hand van sterretjes ofzoiets een rechthoekje tekent?

Gebruikersavatar
Berichten: 2.902

Re: [java] rechthoek afbeelden

Het is een extra opgave in de cursus onder het hoofdstuk statische methoden.

Het denk ik niet de bedoeling dat wat zo'n gans paneel kunnen maken e.d. maar als tussendoortje wou ik gewoon graag de oefening oplossen, enkele zaken opzoeken en ondertussen wat bijleren.

Ik heb ondertussen al wat zitten rondneuzen op wikipedia en daar heb ik iets gevonden hoe je een "Canvas" moet programmeren: http://en.wikibooks.org/wiki/Java_Programming/Canvas

Ik wou eens testen of ik iets tevoorschijn krijg maar wanneer ik de onderstaande code uitvoer krijg ik 2 errors:
import java.awt.*;

import javax.swing.*;

public class MyCanvas extends Canvas

{

public MyCanvas()

{

}

public void paint(Graphics graphics)

{

}

public static void main(String[] args)

{

MyCanvas canvas = new MyCanvas(); // We initialize our class here

JFrame frame = new JFrame();

frame.setSize(400, 400);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(canvas); // Here we add it to the frame

frame.setVisible(true);

}

}
Als ik de code uitvoer krijg ik:

-non-static variable this cannot be referenced from a static context

-inner classes cannot have static declarations

Mijn stukje code voor de rechthoek, bijvoorbeeld: (moet nog wel aangepast worden zodat ik mijn lengte e.d. kan inlezen)
public void paint(Graphics graphics)

{

graphics.drawLine(10, 20, 300, 310);

}
Zou ik dus ergens in de stuk code voor het canvas moeten krijgen (dat natuurlijk eerst moet werken).

Weet er iemand een oplossing voor het canvas probleem en het integreren van de rechthoek ?

Gebruikersavatar
Berichten: 2.902

Re: [java] rechthoek afbeelden

Dankzij WSF gebruiker Evil Lathander is mijn probleem opgelost.

De code van wikipedia werkt perfect maar ze mag blijkbaar niet ergens in een andere classa ingevoegd worden.

Bedankt voor de hulp iedereen

Gebruikersavatar
Berichten: 6.905

Re: [java] rechthoek afbeelden

Dit onderwerp past beter in het subforum programmeren en is zodoende verplaatst.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Gebruikersavatar
Berichten: 4.810

Re: [java] rechthoek afbeelden

De vraag is nu natuurlijk of je er wat aan hebt gehad? Ik vermoed eerlijk gezegd van niet :D

Gebruikersavatar
Berichten: 2.902

Re: [java] rechthoek afbeelden

De vraag is nu natuurlijk of je er wat aan hebt gehad? Ik vermoed eerlijk gezegd van niet :D
Ik heb er wel wat aan gehad hoor, ik begrijp misschien de code voor het Frame niet tot in het detail maar ik zou het wel kunnen reproduceren bij een gelijkaardige opgave.

Na een beetje gepruts met verschillende parameters weet ik wel hoe ik het Frame naar mijn wensen kan aanpassen wat voor mij voldoende is momenteel !

Gebruikersavatar
Berichten: 4.810

Re: [java] rechthoek afbeelden

Dit was trouwens geen statische methode, maar ik vermoed dat je wel doorhebt wat een statische methode is?

Gebruikersavatar
Berichten: 6.905

Re: [java] rechthoek afbeelden

Onder voorbehoud:

een statische methode is een methode die enkel binnen de klasse te gebruiken is?

Klopt dit? (Of zit mijn kennis van talen die dit gebruiken zo ver weg ...)
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Gebruikersavatar
Berichten: 4.810

Re: [java] rechthoek afbeelden

Een statische methode is een methode die je kan oproepen zonder dat je een object hoeft te maken van de klasse waar ze in zit. Bv Math.round()

Je kan enkel een statische methode definiëren indien die methode geen enkele variabele aanspreekt van de klasse zelf.

Gebruikersavatar
Berichten: 6.905

Re: [java] rechthoek afbeelden

:D Is dat in C# ook zo, want dan is de uitleg in het boek voor mij niet te begrijpen ...?
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Gebruikersavatar
Berichten: 2.902

Re: [java] rechthoek afbeelden

Dit was trouwens geen statische methode, maar ik vermoed dat je wel doorhebt wat een statische methode is?
Ik wist dat het geen statische methode is, die rechthoek is namelijk een object die gevormd wordt door de constructor drawRect(int,int,int,int).

Gebruikersavatar
Berichten: 4.810

Re: [java] rechthoek afbeelden

:D Is dat in C# ook zo, want dan is de uitleg in het boek voor mij niet te begrijpen ...?
Ik vermoed van wel (ik ken geen C#), maar wat jij beschrijft is gewoon een private methode :P
Ik wist dat het geen statische methode is, die rechthoek is namelijk een object die gevormd wordt door de constructor drawRect(int,int,int,int).
drawRect() is een methode, geen constructor. De constructor is Graphics() (die hier dan nog eens protected is waardoor je deze niet kan oproepen zonder de klasse Graphics te extenden).

Reageer