Springen naar inhoud

[java] rechthoek afbeelden


  • Log in om te kunnen reageren

#1

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 29 april 2008 - 18:31

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.
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 29 april 2008 - 18:46

De klasse Graphics kan dat :D

http://java.sun.com/...t/Graphics.html

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

#3

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 29 april 2008 - 19:29

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 ?
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

#4

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 29 april 2008 - 21:18

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?

#5

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 29 april 2008 - 22:05

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....gramming/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 ?
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

#6

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 29 april 2008 - 22:22

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
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

#7

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 30 april 2008 - 07:36

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.

#8

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 30 april 2008 - 12:53

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

#9

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 30 april 2008 - 17:01

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 !
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

#10

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 30 april 2008 - 18:01

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

#11

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 30 april 2008 - 18:07

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.

#12

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 30 april 2008 - 18:09

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.

#13

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 30 april 2008 - 18:14

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

#14

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 30 april 2008 - 18:14

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).
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

#15

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 30 april 2008 - 18:22

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

Veranderd door Cycloon, 30 april 2008 - 18:23






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures