ScrollBar

Status
Nicht offen für weitere Antworten.

sirair

Aktives Mitglied
Hi,
ich möchte mit einem ScrollBar die Geschwindigkeit des Balles regeln(Thread.sleep (10-geschw)). Ich habe zwar die Methode unten AdjustmentListener implemetiert, aber ich weiß nicht weiter. Es sollen insg. drei Stufen geben(0,5,10).


Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Ballbewegung1 extends Applet implements Runnable,AdjustmentListener
{
    // Initialisierung der Variablen
    int x_pos = 10;     // x - Position des Balles
    int y_pos = 100;    // y - Position des Balles
    int radius = 20;    // Radius des Balles
    Scrollbar bar =new Scrollbar(Scrollbar.HORIZONTAL, 4, 1, 1, 4);
    private int geschw=0;

    public void init()
    {
            add(bar);
    bar.addAdjustmentListener(this);
    }

    public void start ()
    {
        // Schaffen eines neuen Threads, in dem das Spiel läuft
        Thread th = new Thread (this);
        // Starten des Threads
        th.start ();
    }

    public void stop()
    {

    }

    public void destroy()
    {

    }

    public void run ()
    {
        // Erniedrigen der ThreadPriority um zeichnen zu erleichtern
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

        // Solange true ist läuft der Thread weiter
        while (true)
        {
            // Verändern der x- Koordinate
            x_pos ++;

            // Neuzeichnen des Applets
            repaint();

            try
            {
                // Stoppen des Threads für in Klammern angegebene Millisekunden
                Thread.sleep (10-geschw);
            }
            catch (InterruptedException ex)
            {
                // do nothing
            }

            // Zurücksetzen der ThreadPriority auf Maximalwert
            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
        }
    }


    public void paint (Graphics g)
    {
        g.setColor  (Color.red);

        g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
    }
    
    public void adjustmentValueChanged(AdjustmentEvent e) {
    // Anzeigen des aktuellen
    // Wertes des Scrollbars im Textfeld

  }

}
Code:
 

André Uhres

Top Contributor
Code:
       switch (e.getValue()){
            case 1: geschw = 9; break;
            case 2: geschw = 5; break;
            case 3: geschw = 0; break;
        }
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben