Я пытаюсь изучить javafx. Я сделал большую часть кода, но у меня возникают проблемы с методом start.Javafx KeyEvent и MousEevent
Что я хотел сделать, это добавить пятна на экран, щелкнув по нему. И если я нажму 1 или 0 будущих пятен, которые будут добавлены, изменится на другой цвет. Поэтому я знаю, что я должен использовать методы setOnMouseClicked
и setOnKeyPressed
, но в Интернете их мало.
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
public class Spots extends Application {
public static final int SIZE = 500;
public static final int SPOT_RADIUS = 20;
private LinkedList<Spot> spotList;
private Color color;
public static void main(String...args) {
launch(args);
}
public void start(Stage stage) {
stage.setTitle("Spots");
dotList = new SinglyLinkedList<>();
Group root = new Group();
Scene scene = new Scene(root, 500, 500, Color.BLACK);
Spot r;
// ...
stage.show();
}
private class Spot extends Circle {
public Spot(double xPos, double yPos) {
super(xPos, yPos, SPOT_RADIUS);
setFill(color);
}
public boolean contains(double xPos, double yPos) {
double dx = xPos - getCenterX();
double dy = yPos - getCenterY();
double distance = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
return distance <= SPOT_RADIUS;
}
}
}
Спасибо! Но как это сделать, когда я нажимаю на экран, появляется новое пятно? – Lin
Моя основная проблема - событие мыши. – Lin
Большое спасибо! Теперь я понимаю с вашей помощью. – Lin