gpt4 book ai didi

java - 如何将所有形状插入数组中?

转载 作者:行者123 更新时间:2023-11-30 02:18:42 24 4
gpt4 key购买 nike

我正在尝试建立一个电影预订器,我必须在其中选择座位。我正在考虑将所有矩形放入一个数组中,以便稍后使用它,当单击座位时,它应该检查左右座位是否已预订。这里数组索引应该对我有帮助。但是我不知道如何到达这个阶段。 (见图。)

假设这个场景:您单击一个矩形(代表一个座位)。它只是改变颜色,而不是红色。所以 Seats[][].checkNeighbourColor 或类似的东西。 See picture

package sample;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

import java.awt.*;
import java.util.ArrayList;


public class Main extends Application {

private int seats = 12;
private int rows = 8;
private static Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //gets screen resolution data





public static void main(String[] args) {
Application.launch(args);

}

@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("");
Group root = new Group();
Scene scene = new Scene(root, screenSize.getWidth()/4, screenSize.getHeight()/3, Color.WHITE);


for (int i = 0; i<= seats; i++)
{
Rectangle r = new Rectangle();
r.setFill(Color.GREEN);
r.setX(scene.getWidth()/5+i*30);
r.setY(scene.getHeight()/5);
r.setWidth(screenSize.getHeight()/80);
r.setHeight(screenSize.getHeight()/80);
root.getChildren().add(r);

for (int q = 0; q<=rows; q++)
{
Rectangle s = new Rectangle();
s.setFill(Color.GREEN);
s.setX(scene.getWidth()/5+i*30);
s.setY(scene.getHeight()/5+q*30);
s.setWidth(screenSize.getHeight()/80);
s.setHeight(screenSize.getHeight()/80);
root.getChildren().add(s);


s.setOnMouseClicked(event ->{
s.setFill(Color.BLACK);
});

}
}



primaryStage.setScene(scene);
primaryStage.show();
}

}

最佳答案

我不太清楚你在问什么,但你不能这样做吗

private Rectangle[][] rectangles = new Rectangle[seats][rows];

然后就这样做

rectangles[i][q] = s ;

对于你的听众你可以做

final int row = i ;
final int seat = q ;
s.setOnMouseClicked(event -> {
// check rectangles[row-1][seat] and rectangles[row+1][seat] as needed,
// checking for range of row first
});

旁白:不要混合使用 AWT 和 JavaFX。使用Screen API获取 JavaFX 中物理屏幕的尺寸。

关于java - 如何将所有形状插入数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47519142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com