Witam, właśnie zaczynam zabawę z JavaFX i od razu napotkałem na problem:P
Mianowicie, stworzyłem sobie kwadracik i zdefiniowałem event onMouseClicked, który przesuwa go o 20 jednostek w prawo.
I program działa, naciskam i się przesuwa, ale jak zrobić żeby tak się działo po kazdym kliknięciu, a nie tylko po pierwszym?
Oto mój kod:
package movement;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
/**
*
* @author Dess
*/
public class Movement extends Application {
Rectangle head;
private double x = 0, y = 0;
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
head = new Rectangle(10, 10, Color.BLACK);
head.setTranslateX(x);
head.setTranslateY(y);
root.getChildren().add(head);
Scene scene = new Scene(root, 300, 300);
scene.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
moveRight();
}
private void moveRight() {
x =+ 20;
head.setTranslateX(x);
}
});
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}