algemeen concept v een prog + graphics2D, javabeginner

Status
Niet open voor verdere reacties.

digithing

Nieuwe gebruiker
Lid geworden
12 mrt 2008
Berichten
3
Ik ben java aan het leren, heb een vak aan de unief,
(morgen examen maar vrees dat ik daar niet klaar voor ga zijn)

Ik wil graag begrijpen hoe ik een programma schrijf, men heeft mij verteld dat de beste manier om dat te leren is door iets te schrijven dat je echt interesseert.
Nu ben ik grafisch aangelegd(en ook visueel ingesteld) dus dacht ik dus iets grafisch te ontwerpen.

Mijn idee was om te beginnen met een voorstelling van een aquarium, eerst als stilstaand beeld, later als bewegend, en nog later de vormgeving bijwerken (met bijvoorbeeld transparantie, mooiere vissen, interactie, etc)

De bedoeling is dus dat ik kan leren hoe dat berichten verzenden en zo werkt, want theoretisch schijnt het er niet in te geraken.

Om te beginnen stel ik de vis als ovaal voor (om het wat te vereenvoudigen, als dat werkt kan ik voort)

Het hele concept opbouwen is voor mij al redelijk moeilijk en ook daar maak ik allicht fouten, dus ik beschrijf (sorry voor mijn slechte vocabulaire wat java betreft, maar ik studeer in het frans en ken dus niet alle termen in het nederlands)

Ik vertrek met een class MijnFrame die het hele aquarium bevat,
daarin creër ik een object aqua, van de class Aquarium (extends Canvas)
Dat Aquarium bevat alle elementen die in het water komen, zoals vissen en waterplanten,
de achtergrondkleur van het Aquarium is blauw.
De vissen en waterplanten zijn onderdelen van de abstracte class Waterleven (die wel wat overbodig is misschien maar ik moet proberen om van alles wat te hebben),
en hebben methodes 'paint' en een constructor die de kleur en de grootte van elk soort vis bepalen, (later komen daar dan ook beweeg-methodes bij en zo)

Is dat zo al een beetje een goed vertrekidee ?

Ik schrijf nu in een tweede bericht wat ik daar tot nu toe van gemaakt krijg...
(maar je mag al commentaar geven op het conceptuele gedeelte, let wel, ik ben een beginner...)
 
hm, blijkbaar slaapt iedereen in nederlands javaland ... :D

wat ik tot dusver heb geschreven (ik vraag niet om mijn programma voor mij te schrijven,
alleen raad hoe ik verder moet, en wat verkeerd is, alsjeblief)

het Frame dus, waarin het aquarium staat en de main, die er een Frame aanmaakt.
(die 'classe anonyme' om het venster te sluiten is van de docent , heb ik uit een andere oefening gehaald, ik krijg daar wel klachten over van de compiler, maar ik ga dat later bekijken, misschien heb ik een accolade vergeten, maar ik zie het zo direkt niet, maar wil me nu op het concept concentreren)
Code:
import java.awt.event.*;
import java.awt.*;

public class MijnFrame extends Frame implements ActionListener
{

		Aquarium aqua  = new Aquarium();
		add(aqua, BorderLayout.CENTER);
		
		this.addWindowListener(new WindowAdapter()
		{
			public void windowClosing (WindowEvent e)
			{
				System.exit(0);
			}
  		});
		
		show();
		


	public static void main(String args[])
  	{
  		 MijnFrame voorAqua = new MijnFrame();
		voorAqua.setVisible(true);
	}		
}

het Aquarium, met voorlopig maar 1 vis (die nog als een simpele ovaal voorgesteld is)

Code:
import java.awt.Canvas;
import java.awt.Graphics;

class Aquarium extends Canvas{
	public Aquarium (){
		setSize (800, 600);
		setBackgroundColor(Color.blue);
		new BigFish tino = new Bigfish (green, 10.0,10.0, 100,50);
	}
	
}

en de vis dus ... (ik heb nog geen superclass voor de BigFish, omdat ik nog niet zo direkt kan verzinnen wat die zou kunnen bevatten, maar dat moet ik dus nog doen)

Code:
import java.awt.*;

public class BigFish extends Fish {

private float x;
private float y;
private float w;
private float h;

public void paint (graphics g)
{
	graphics 2D g2 = (Graphics 2D)g;
	Ellipse 2D fishBody = new Ellipse 2D. float (x,y,w,h);
	g2.setPaint (Color.kleur);
}

public BigFish (Color kleur, float x, float y, float w, float h)
{
	this.kleur = kleur;
	this.x = x;
	this.y = y;
	this.w = w;	
	this.h = h;
}

}
 
kan niemand mij een stapje verder helpen? (zonder het in mijn plaats to doen)


ps ik ben geslaagd voor mijn examen (was theoretisch)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan