Hallo liebe Community,
ich habe folgendes Problem:
Wir sollen 3 Kreise auf einem Bildschrim erscheinen lassen und bei klick auf einen der Kreise soll der angeklickte sich schwarz füllen und bei bestimmten Tastendruck in andere Fraben zu dem soll er sich beim drücken auf ''+'' und ''-'' vergrößern oder verkleinern und bei den Pfeiltasten verschieben ich hab aber ein Problem ich habe garkein Plan wie ich Java sage welcher Kreis der aktive ist ich weiß zwar wie man aus rechnen kann ob der Kreis geklickt bzw getroffen wurde oder nicht aber nicht wie ich es dann weiter fort führe sodass Java immer nur den einen kreis bearbeitet statt alle einmal abzufragen danke für alles was kommt
hier der Quellcode :
2 Objekte : GRafikPgm & Kreis
GrafikPgm
Kreis
[Java]
import sum.kern.*;
public class Kreis
{
//Objektnamen
private Buntstift hatStift ;
private double zhPosition,zvPosition,zGroesse;
private int zFarbe, zMuster;
//
//Konstruktor
public Kreis (double phPosition,double pvPosition,double pGroesse,int pFarbe,int pMuster)
{
zhPosition = phPosition;
zvPosition = pvPosition;
zGroesse = pGroesse;
zFarbe = pFarbe;
zMuster = pMuster;
//
hatStift = new Buntstift();
hatStift.bewegeBis(zhPosition,zvPosition);
hatStift.setzeFarbe(zFarbe);
hatStift.setzeFuellMuster(zMuster);
hatStift.zeichneKreis(zGroesse);
}
public void gibFrei ()
{
hatStift.gibFrei();
}
public void zeichne ()
{
hatStift.zeichneKreis(zGroesse);
}
public void bewegeBis (double phPosition,double pvPosition)
{
this.loesche();
hatStift.bewegeBis(phPosition,pvPosition);
this.zeichne();
}
public void loesche ()
{
hatStift.radiere();
this.zeichne();
hatStift.normal();
}
public void setzeFarbe(int pFarbe)
{
this.loesche();
zFarbe = pFarbe;
hatStift.setzeFarbe(zFarbe);
this.zeichne();
}
private void setzeFuellMuster(int pMuster)
{
this.loesche();
zMuster = pMuster;
hatStift.setzeFuellMuster(zMuster);
this.zeichne();
}
public void setzeGroesse(double pGroesse)
{
this.loesche();
zGroesse = pGroesse;
this.zeichne();
}
public double hPosition()
{
return hatStift.hPosition();
}
public double vPosition()
{
return hatStift.vPosition();
}
public double Groesse()
{
return zGroesse;
}
public boolean getroffen(double phPosition,double pvPosition)
{
return (phPosition-hatStift.hPosition())
*(phPosition-hatStift.hPosition())
+(pvPosition-hatStift.vPosition())
*(pvPosition-hatStift.vPosition()) <=zGroesse*zGroesse;
}
public void deaktiviere()
{
this.setzeFuellMuster(Muster.DURCHSICHTIG);
}
public void aktiviere()
{
this.setzeFuellMuster(Muster.GEFUELLT);
}
public double phPosition()
{
return zhPosition;
}
public double pvPosition()
{
return zvPosition;
}
}
[/code]
ich habe folgendes Problem:
Wir sollen 3 Kreise auf einem Bildschrim erscheinen lassen und bei klick auf einen der Kreise soll der angeklickte sich schwarz füllen und bei bestimmten Tastendruck in andere Fraben zu dem soll er sich beim drücken auf ''+'' und ''-'' vergrößern oder verkleinern und bei den Pfeiltasten verschieben ich hab aber ein Problem ich habe garkein Plan wie ich Java sage welcher Kreis der aktive ist ich weiß zwar wie man aus rechnen kann ob der Kreis geklickt bzw getroffen wurde oder nicht aber nicht wie ich es dann weiter fort führe sodass Java immer nur den einen kreis bearbeitet statt alle einmal abzufragen danke für alles was kommt
hier der Quellcode :
2 Objekte : GRafikPgm & Kreis
GrafikPgm
Java:
import sum.kern.*;
public class GrafikPgm
{
public static void main(String args[])
{
Bildschirm derBildschirm;
Tastatur dieTastatur;
Maus dieMaus;
Kreis Kreis1,Kreis2,Kreis3;
// Initialisierung
derBildschirm = new Bildschirm();
dieMaus = new Maus();
dieTastatur = new Tastatur ();
Kreis1 = new Kreis(200,100,20,Farbe.SCHWARZ,Muster.DURCHSICHTIG);
Kreis2 = new Kreis(200,200,50,Farbe.SCHWARZ,Muster.DURCHSICHTIG);
Kreis3 = new Kreis(500,400,10,Farbe.SCHWARZ,Muster.DURCHSICHTIG);
// Aktionsteil
Kreis1.zeichne();
Kreis2.zeichne();
Kreis3.zeichne();
do
{
{
Kreis1.aktiviere();
Kreis1.loesche();
Kreis1.zeichne();
}
}
while (! dieMaus.doppelKlick());
// Aufraeumen
Kreis1.gibFrei();
Kreis2.gibFrei();
Kreis3.gibFrei();
dieTastatur.gibFrei();
dieMaus.gibFrei();
derBildschirm.gibFrei();
}
}
Kreis
[Java]
import sum.kern.*;
public class Kreis
{
//Objektnamen
private Buntstift hatStift ;
private double zhPosition,zvPosition,zGroesse;
private int zFarbe, zMuster;
//
//Konstruktor
public Kreis (double phPosition,double pvPosition,double pGroesse,int pFarbe,int pMuster)
{
zhPosition = phPosition;
zvPosition = pvPosition;
zGroesse = pGroesse;
zFarbe = pFarbe;
zMuster = pMuster;
//
hatStift = new Buntstift();
hatStift.bewegeBis(zhPosition,zvPosition);
hatStift.setzeFarbe(zFarbe);
hatStift.setzeFuellMuster(zMuster);
hatStift.zeichneKreis(zGroesse);
}
public void gibFrei ()
{
hatStift.gibFrei();
}
public void zeichne ()
{
hatStift.zeichneKreis(zGroesse);
}
public void bewegeBis (double phPosition,double pvPosition)
{
this.loesche();
hatStift.bewegeBis(phPosition,pvPosition);
this.zeichne();
}
public void loesche ()
{
hatStift.radiere();
this.zeichne();
hatStift.normal();
}
public void setzeFarbe(int pFarbe)
{
this.loesche();
zFarbe = pFarbe;
hatStift.setzeFarbe(zFarbe);
this.zeichne();
}
private void setzeFuellMuster(int pMuster)
{
this.loesche();
zMuster = pMuster;
hatStift.setzeFuellMuster(zMuster);
this.zeichne();
}
public void setzeGroesse(double pGroesse)
{
this.loesche();
zGroesse = pGroesse;
this.zeichne();
}
public double hPosition()
{
return hatStift.hPosition();
}
public double vPosition()
{
return hatStift.vPosition();
}
public double Groesse()
{
return zGroesse;
}
public boolean getroffen(double phPosition,double pvPosition)
{
return (phPosition-hatStift.hPosition())
*(phPosition-hatStift.hPosition())
+(pvPosition-hatStift.vPosition())
*(pvPosition-hatStift.vPosition()) <=zGroesse*zGroesse;
}
public void deaktiviere()
{
this.setzeFuellMuster(Muster.DURCHSICHTIG);
}
public void aktiviere()
{
this.setzeFuellMuster(Muster.GEFUELLT);
}
public double phPosition()
{
return zhPosition;
}
public double pvPosition()
{
return zvPosition;
}
}
[/code]