我是java的新手,我的问题可能是愚蠢但我真的不知道如何解决这个问题,我正在制作一个扫雷并且即时通讯使用javafx,我正在使用一个类的地雷,所以即时通讯使用“stackPane”和我把它放在一个网格中,我的问题是我不知道它的多个实例的热点,我不知道如何开始,我制作一个10 * 10板,并且矿山随机地接触到apear,所以我正在使用“math.random”来判断一个空间是否会是一个空间,或者它是否会有一个地雷,我希望有一个可以帮助我
我找到了解决方案,但我现在不知道怎么做的事情是如何为每个按钮设置“setaction”,我试图把setonactio(new eventhandler()... 这是我的代码:
package buscaminas2;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
*
* @author ALIENWARE R4
*/
public class Buscaminas2 extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("buscaminas");
GridPane mainGrid = new GridPane();
GridPane flowPane = new GridPane();
flowPane.setPadding(new Insets(2, 2, 2, 2));
flowPane.setVgap(2);
flowPane.setHgap(2);
//flowPane.setPrefWrapLength(210);
HBox score = new HBox();
Button btn = new Button();
for (int i = 0; i < 10; i++) {//-----------------bob the constructor------------------//
for (int j = 0; j < 10; j++)
{
int abc = (int)(Math.random()*10);
System.out.print(abc);
if( abc > 2)
{
btn = new Button(" ");
btn.setId(STYLESHEET_MODENA);
btn.setPrefSize(35, 35);
flowPane.add(btn, i, j);
flowPane.getChildren().get(i);
}
else
{
StackPane boomb = new StackPane();//---------------------bombs--------------------//
boomb.setPrefSize(35, 35);
Label num = new Label("X");
num.setPrefSize(40, 40);
boomb.getChildren().add(num);
Button xyz = new Button();
xyz.setPrefSize(40, 40);
boomb.getChildren().add(xyz);
flowPane.add(boomb, i, j);// agrega bombas en xy agregando "boomb" en el grid
}
}
}
Scene scene = new Scene(flowPane);
primaryStage.setScene(scene);
primaryStage.show();
}
}