Hi Leute,
in der Schule haben wir ein programm bekommen & sollten darauf ein kleines Projekt machen, bei dem wir etwas ändern & etwas neues aus dem programm machen.
Nun gut, auf jeden Fall ist es etwas wie nen "Ufo-Rennen", war vorher nen "Auto-Rennen". 
Ich wollte noch einen Button einbauen, der einfach wie ein farbiges Rechteck aussieht, wo man draufklicken kann, damit das "Ufo" die Farbe ändert. Da komm ich aber nicht so ganz klar. Im ersten Teil wird ja die Farbe bestimmt, welche man im 2. Teil angeben kann. Da muss man doch dann irgendwie was neues einbauen, sodass beim klick auf den neuen button die farbe geändert wie. habt ihr vielleicht eine Idee ?
Code:
import java.awt.*;
public class Auto
{
public int x;
int y;
Color farbe;
public int geschw;
Auto(int xpos, int ypos, Color color)
{
x = xpos;
y = ypos;
farbe = color;
}
public void gasGeben(int gas)
{
if (geschw<100)
geschw = geschw + gas;
}
public void bremsen(int bremse)
{
if (geschw>0)
geschw = geschw - bremse;
}
public void farbeaendern(Color farbe)
{
this.farbe=farbe;
}
public void zeichnen(Graphics g)
{
g.setColor(Color.black);
g.drawOval(x+100,y+5,45,45); // Zeichnen der Scheibe
g.setColor(Color.black);
g.fillOval(x+45,y+35,150,30); // Zeichnen des Rumpfes
g.setColor(farbe);
g.drawOval(x+110,y+15,20,20); // Kopf
g.drawLine(x+110,y+35,x+100,y+20); // Linker Arm
g.drawLine(x+130,y+35,x+140,y+20); // Rechter Arm
g.drawOval(x+115,y+20,5,5); // Linkes Auge
g.drawOval(x+120,y+20,5,5); // Rechtes Auge
g.drawLine(x+115,y+30,x+125,y+30); // Mund
g.drawLine(x+115,y+30,x+115,y+28); // Linker Mundwinkel
g.drawLine(x+125,y+30,x+125,y+28); // Rechter Mundwinkel
// g.drawLine(x+110,y+15,x+20,x+20); // (Laser des Ufo's - Noch nicht fertig)
}
}
Und der 2. Teil :
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class AutoRennen extends Applet implements Runnable
{
Button button1 = new Button();
Button button2 = new Button();
Button button3 = new Button();
Button button4 = new Button();
Button button5 = new Button();
/** Neuen Thread für die Animation */
Thread engine;
boolean running;
/** Die Autos instanzieren */
Auto auto1 = new Auto(100,65,Color.green);
Auto auto2 = new Auto(100,190,Color.blue);
/** Das Applet konstruieren */
public AutoRennen()
{
}
/** Das Applet initialisieren */
public void init()
{
/** Initialisierung der Komponenten */
setLayout(null);
button1.setLabel("Gas");
button1.addMouseListener
(new java.awt.event.MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
button1_mouseClicked(e);
}
}
);
button2.setLabel("Bremse");
button2.addMouseListener
(new java.awt.event.MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
button2_mouseClicked(e);
}
}
);
button3.setLabel("Gas");
button3.addMouseListener
(new java.awt.event.MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
button3_mouseClicked(e);
}
}
);
button4.setLabel("Bremse");
button4.addMouseListener
(new java.awt.event.MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
button4_mouseClicked(e);
}
}
);
button5.setLabel("Farbe ändern");
button5.addMouseListener
(new java.awt.event.MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
button5_mouseClicked(e);
}
}
);
add(button1);
button1.setBounds(42,270,60,20);
add(button2);
button2.setBounds(112,270,60,20);
add(button3);
button3.setBounds(222,270,60,20);
add(button4);
button4.setBounds(292,270,60,20);
add(button5);
button5.setBounds(330,270,60,20);
/** Den Thread instanzieren */
if(engine==null)
{
running=true;
engine=new Thread(this);
engine.start();
}
}
/** Applet-Information holen */
public String getAppletInfo()
{
return "Car-Racing";
}
/** Methodenaufruf bei Mouseclick */
void button1_mouseClicked(MouseEvent e)
{
auto1.gasGeben(4);
}
void button2_mouseClicked(MouseEvent e)
{
auto1.bremsen(2);
}
void button3_mouseClicked(MouseEvent e)
{
auto2.gasGeben(10);
}
void button4_mouseClicked(MouseEvent e)
{
auto2.bremsen(10);
}
void button5_mouseClicked(MouseEvent e)
{
}
/** Zeichnen des Applets */
public void paint(Graphics g)
{
g.setColor(Color.white);
g.fillRect(195,0,10,300);
auto1.zeichnen(g);
auto2.zeichnen(g);
g.setColor(Color.white);
}
/** Die Animation starten */
public void run()
{
while (running=true)
{
/** Alle 50 Milisekunden den Appletinhalt neu zeichnen */
repaint();
/** Die Autos entlang der x-Achse bewegen */
auto1.x=auto1.x+auto1.geschw;
if(auto1.x > 500)
auto1.x = -150;
auto2.x = auto2.x+auto2.geschw;
if(auto2.x>500)
auto2.x=-150;
try {
engine.sleep(50);
}
catch(InterruptedException ie) {
}
}
}
/** Animation stoppen und Thread löschen */
public void stop()
{
if (engine!=null)
{
running=false;
engine.stop();
engine=null;
}
}
}
Ich hoffe ihr könnt mir helfen 
Und wie programmiert man den Button so, dass er einfach ein farbiges Rechteck ist ?
Danke schonmal im Voraus !