Hallo, ich habe einige Probleme.
ich möchte einen roten Punkt im Applet der bei Eingabe einer Zahl in das Textfield und dann nach Druck auf den Button, die eingegebene Zahl vorwärts zieht (für einen Monopoly-Spielplan):
Probleme:
ich möchte einen roten Punkt im Applet der bei Eingabe einer Zahl in das Textfield und dann nach Druck auf den Button, die eingegebene Zahl vorwärts zieht (für einen Monopoly-Spielplan):
Probleme:
- 1. Wie kann ich erreichen, dass der Button und das Textfield nicht in der Mitte angezeigt werden? "setBounds" hat keine Auswirkungen?!
- 2. Wie erreiche ich es, dass der Punkt immer richtig um die Ecke "geht". Wenn man nicht auf einem Eckfeld steht und dann eine Eingabe tätigt, die den Punkt um die Ecke gehen lassen sollte, verschwindet der Punkt aus dem Blickfeld oder "geht" falsch.
Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class Monogui extends Applet {
Image bild;
private Button button1 = new Button();
private TextField textField1 = new TextField();
int x = 70;
int y = 70;
int zahl;
boolean back = false;
boolean hoch = false;
public void init () {
bild = getImage(getDocumentBase(),"Unbenannt.gif");
textField1.setBounds(160, 588, 100, 50);
textField1.setText("");
add(textField1);
button1.setBounds(32, 40, 35, 25);
button1.setLabel("ziehe...");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button1_ActionPerformed(evt);
}
});
add(button1);
resize(800, 800);
}
public void paint(Graphics g){
g.drawImage(bild, 0, 0, this);
g.setColor(Color.red);
g.fillOval(x, y, 10, 10);
}
public void button1_ActionPerformed(ActionEvent evt) {
zahl = Integer.parseInt(textField1.getText());
if ((x+zahl) <= 670 && back == false){
x = x + (zahl*60);
repaint();
}
else if ((x+zahl) > 670 && y <= 610){
back = true;
y = y + (zahl*60);
repaint();
}
else if (y > 610 && back && hoch == false){
x = x - (zahl*60);
repaint();
if (x <= 70){
hoch = true;
}
}
else if (back && hoch){
y = y - (zahl*60);
repaint();
if(y <= 70){
back = false;
hoch = false;
}
}
}
}
Zuletzt bearbeitet von einem Moderator: