Naja mit nur einem Ladungsträger meine ich nicht insgesamt sondern nur innerhalb der Strecke von den beiden Polen, ich gehe also davon aus, dass die Ladungsträger nahezu vollständig zu den(m) pol(en) gewandert sind.

Wenn man dann die Stromstärke extrem gering macht, so ist kann man doch durchaus davon ausgehen, dass wenn die Stromstärke gering genug ist, dass sich zwischen den Polen nur das wandernde Elektron (Ladungsträger) befindet, oder nicht?

Lg

...zur Antwort
BlueJ NullPointerException?

Hallo,

muss schulisch ein Billard-Spiel mit BlueJ Programmieren. Problem:

Hier der Fehler:

java.lang.NullPointerException
	at sum.kern.Stift.zeichneKreis(Stift.java:342)
	at Kugel.zeichne(Kugel.java:45)
	at Kugel.loesche(Kugel.java:54)
	at Kugel.bewege(Kugel.java:60)
	at HP.fuehreAus(HP.java:29)

Klassen:

import sum.kern.*;

public class Kugel
{
    Stift meinStift;
    private static final double size = 10;

    public Kugel() {
        meinStift = new Stift();
        meinStift.bewegeBis(50, 50);
        meinStift.dreheBis(40);
    }
    //Methoden
    public boolean imRahmen() {
        if ((hPos() <= 485) && (hPos() >= 15) && (vPos() <= 235) && (vPos()>= 15)){
            return true;
        }
        else {
            return false;
        }
    }

    private boolean amUnterenRand()
    {
        return this.vPos() >= 500 - size;
    }

    private boolean amOberenRand()
    {
        return this.vPos() <= 0 + size;

    }
    private boolean amLinkenRand()
    {
        return this.hPos() <= 0 + size;

    }
    private boolean amRechtenRand()
    {
        return this.hPos() >= 500 - size;

    }

    public void zeichne() {
        meinStift.zeichneKreis(size);
    }

    public double istWinkel() {
        return meinStift.winkel();
    }

    public void loesche() {
        meinStift.radiere();
        this.zeichne();
        meinStift.normal();
    }

    public void bewege(){ 
        if (this.imRahmen()) {
            this.loesche();
            meinStift.bewegeUm(1);
            this.zeichne();
        } else {
            if (this.amLinkenRand() || this.amRechtenRand()) {
                meinStift.dreheBis(180 - meinStift.winkel());
                this.loesche();
                meinStift.bewegeUm(1);
                this.zeichne();
            }
            else if (this.amOberenRand() || this.amUnterenRand()) {
                meinStift.dreheBis(360 - meinStift.winkel());
                this.loesche();
                meinStift.bewegeUm(1);
                this.zeichne();
            }
        }
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {}
    }

    public double hPos() {
        return meinStift.hPosition();
    }

    public double vPos() {
        return meinStift.vPosition();
    }

    public void richtung(double richtung) {
        meinStift.dreheBis(richtung);
    }
}


import sum.kern.*;

public class HP 
{
    // Objekte
    Stift hpStift;
    Bildschirm Bildschirm;
    Maus maus;
    Kugel kugel1;
    

    // Konstruktor
    public HP()
    {
        kugel1 = new Kugel();

        Bildschirm = new Bildschirm(500, 250);
        maus = new Maus();
        hpStift = new Stift();
        
        zeichneRahmen();
    }

    // Dienste
    public void fuehreAus()
    {
        
        while (!maus.istGedrueckt()) {
            kugel1.bewege();
        }
        maus.gibFrei();
        Bildschirm.gibFrei();
    }

    public void zeichneRahmen() {
        hpStift.zeichneRechteck(500, 250);
    }
}

...zum Beitrag

https://hastebin.com/lodenunuse.java

...zur Antwort