Javafx 如何在每次单击窗格时添加不同的图形?
每次单击时,我都需要按此顺序向窗格中添加正方形、圆形和矩形,因此在第一次单击时,我将添加正方形,在第二次单击时添加圆形,第三次单击时添加矩形,第四次单击时再次添加方形,依此类推Javafx 如何在每次单击窗格时添加不同的图形?,javafx,Javafx,每次单击时,我都需要按此顺序向窗格中添加正方形、圆形和矩形,因此在第一次单击时,我将添加正方形,在第二次单击时添加圆形,第三次单击时添加矩形,第四次单击时再次添加方形,依此类推 r1.setOnMouseClicked((T) -> { if (T.getClickCount() == 1 || (T.getClickCount()%2 != 0 && T.getClickCount() % 3 != 0)) {
r1.setOnMouseClicked((T) -> {
if (T.getClickCount() == 1 || (T.getClickCount()%2 != 0 && T.getClickCount() % 3 != 0))
{
Rectangle r = new Rectangle(T.getSceneX(), T.getSceneY(), 50, 50);
root.getChildren().add(r);
}
else if (T.getClickCount()%2 == 0 && T.getClickCount() % 3 != 0) {
Circle c1 = new Circle(T.getSceneX(), T.getSceneY(), 50);
root.getChildren().add(c1);
}
else if (T.getClickCount()%2 != 0 && T.getClickCount() % 3 == 0) {
Rectangle r3 = new Rectangle(T.getSceneX(), T.getSceneY(), 40, 70);
root.getChildren().add(r3);
}
});
我已使用上述代码完成了此示例:
import javafx.scene.layout.*;
import javafx.scene.*;
import javafx.stage.*;
import javafx.scene.shape.*;
import javafx.application.Application;
import javafx.scene.paint.Color;
public class Test1 extends Application{
private int count = 0;
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
Pane canvas = new Pane();
canvas.setStyle("-fx-background-color: black;");
canvas.setPrefSize(350,250);
canvas.setOnMouseClicked((t) -> {
count ++;
System.out.println("".format("%s %s %s", count, t.getSceneX(), t.getSceneY()));
if (count == 1 || (count%2 != 0 && count % 3 != 0))
{
Rectangle r = new Rectangle(50, 50, Color.RED);
r.relocate(t.getSceneX(),t.getSceneY());
canvas.getChildren().add(r);
}
else if (count%2 == 0 && count % 3 != 0) {
Circle c1 = new Circle(50,Color.GREEN);
c1.relocate(t.getSceneX(), t.getSceneY());
canvas.getChildren().add(c1);
}
else if (count%2 != 0 && count % 3 == 0) {
Rectangle r3 = new Rectangle(40, 70, Color.PINK);
r3.relocate(t.getSceneX(), t.getSceneY());
canvas.getChildren().add(r3);
}
});
root.getChildren().addAll(canvas);
}
public static void main(String[] args) {
launch(args);
}
}
你有什么代码要显示吗?事实上,没有,这是一个项目的一部分,我真的不知道如何做,我尝试使用GetClickCount(),但它对我不起作用。我只是添加了我尝试过的代码。当然,GetClickCount返回你完成的点击次数(快速),当你停止点击计数器时,计数器重置为0哦,好的,那么我怎样才能得到总点击量呢,有什么方法吗?