Hallo,
wir müssen in BlueJ ein Programm mit zwei Klassen schreiben - LampeGui und Lampe. Hier die zwei Klassen:
UND
Auf jeden Fall sehe ich anhand der Konsole, dass immer die falsche h und v Position erkannt wird. Woran liegt das?
wir müssen in BlueJ ein Programm mit zwei Klassen schreiben - LampeGui und Lampe. Hier die zwei Klassen:
Java:
import basis.*;
public class LampeGui
{
private Fenster fenster;
private Knopf kende;
private Knopf kzeige;
private Knopf kan;
private Knopf kaus;
private Lampe lampe1;
private Lampe lampe2;
private Stift stift;
private Maus maus;
public LampeGui()
{
maus = new Maus();
fenster=new Fenster("Lampen",600, 600);
lampe1 = new Lampe(20, 30, 10, 25, 18, 166);
lampe2 = new Lampe(120, 30, 10, 128, 139, 32);
kan = new Knopf("An", 10, 500, 100, 100);
kaus= new Knopf("Aus", 100, 500, 100, 100);
kzeige = new Knopf("Zeige", 400, 500, 100, 100);
kende = new Knopf("Ende", 500, 500, 100, 100);
while( ! kende.wurdeGedrueckt()) {
Hilfe.kurzePause();
if(kan.wurdeGedrueckt())
{
lampe1.schalteAn();
lampe2.schalteAn();
}
if(kaus.wurdeGedrueckt())
{
lampe1.schalteAus();
lampe2.schalteAus();
}
if( maus.hPosition() <= lampe1.gibX() & maus.vPosition() <= lampe1.gibY())
{
lampe1.blinke();
System.out.println(
"h: " + maus.hPosition() +
" v: " + maus.vPosition() + "\n");
//java.lang.System.out.print(maus.hPosition());
//java.lang.System.out.print(maus.vPosition());
}
if( maus.hPosition() <= lampe1.gibX() & maus.vPosition() <= lampe1.gibY())
{
lampe2.blinke();
}
}
fenster.gibFrei();
}
}
UND
Java:
/**
* Beschreiben Sie hier die Klasse Lampe.
*
* @author (Felix Kant)
* @version (08.03.21)
*/
import basis.*;
public class Lampe
{
private Stift stift;
private Farbe farbe;
private int radius;
private int x;
private int y;
private boolean an;
private int r, g, b;
public Lampe(int x1, int y1, int radius1, int r1, int g1, int b1)
{
r = r1;
g = g1;
b = b1;
x = x1;
y = y1;
radius = radius1;
stift =new Stift();
stift.bewegeAuf(x, y);
stift.zeichneKreis(radius);
stift.fuelle (Farbe.rgb(r, g, b), Farbe.SCHWARZ);
}
public void setzePosition(int pX, int pY)
{
}
public void setzeFarbe(int r, int g, int b)
{
}
public void setzeRadius(int pR)
{
}
public void loesche ()
{
}
public void zeige()
{
}
public void schalteAn()
{
stift.bewegeAuf(x, y);
stift.fuelle (Farbe.rgb(r, g, b), Farbe.SCHWARZ);
an = true;
}
public void schalteAus()
{
stift.bewegeAuf(x, y);
stift.fuelle (Farbe.rgb(255, 255, 255), Farbe.SCHWARZ);
an = false;
}
public void blinke()
{
stift.fuelle(Farbe.rgb(r, g, b), Farbe.SCHWARZ);
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
Hilfe.kurzePause();
stift.fuelle (Farbe.rgb(255, 255, 255), Farbe.SCHWARZ);
}
public int gibX()
{
return x;
}
public int gibY()
{
return y;
}
public int gibRadius()
{
return radius;
}
public boolean gibZustand()
{
return an;
}
public void istDrin(double pX, double pY)
{
}
}
Auf jeden Fall sehe ich anhand der Konsole, dass immer die falsche h und v Position erkannt wird. Woran liegt das?
Zuletzt bearbeitet von einem Moderator: