我正在创建一个游戏,并且GUI中有六边形的棋子。我想在点击它们时选择它们。我尝试了以下方法:
hexagon.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println(piece.toString());
}
});
如果我单击该部分,则会打印有关所选作品的信息,但该作品本身未被选中(六角形周围的蓝色边框)。
最佳答案
本质上是您的代码
hexagon.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println(piece.toString());
}
});
只是打印出任何“片断”。
如果要选择六边形,则需要在onMouseClicked侦听器的handle方法中应用所选内容。
onMouseClicked仅侦听鼠标单击,您必须为其提供有关“如果单击该怎么办”的信息。
所以在这种情况下,您将要做
hexagon.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println(piece.toString());
hexagon.setStroke(Color.BLUE); //Color.BLACK, etc, but you asked for BLUE here.
}
});
笔触是对象的轮廓,因此我假设这就是您所说的“选定”?
如果要选择整个六边形,可以将“ setStroke”更改为“ setFill”,但要求输入蓝色边框。
我也不确定为什么要有六角形以及“碎片”,我认为六角形就是碎片...?
根据您的代码在做什么,您可以将
hexagon.setStroke(Color.BLUE);
替换为piece.setStroke(Color.BLUE);
无论哪种方式,希望对您有所帮助!
关于java - JavaFX选择六角形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36610023/