【发布时间】:2018-05-14 12:35:14
【问题描述】:
我有一个节点(Gridpane 节点),我想从类中获取 instanceof,但是节点或任何对象我无法获取我的类的 instanceof,我需要向类中添加一些东西来执行“instanceof”或者我我做错了吗?
public void Move(GridPane gridPane) {
for (Node node : gridPane.getChildren()) {
if (GridPane.getColumnIndex(node) == this.x && GridPane.getRowIndex(node) == this.y - 2) {
if (node instanceof blackPawn) {
gridPane.setRowIndex(node, this.y);
gridPane.setColumnIndex(node, this.x);
}
break;
}
}
}
不可转换的类型;无法将“javafx.scene.Node”转换为 'sample.Figures.blackPawn'
blackPawn 类
package sample.Figures;
import javafx.event.EventHandler;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
public class blackPawn {
public int x;
public int y;
public ImageView IMG = createChestImage();
private int j = 0;
public blackPawn(){}
public blackPawn(int x,int y)
{
this.x = x;
this.y = y;
}
private ImageView createChestImage() {
final ImageView iv = new ImageView(new Image("sample/Sprites/blackPawn.png"));
iv.setOnMouseEntered(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
iv.setImage(new Image("sample/Sprites/blackPawnStroke.png"));
j = 0;
}
});
iv.setOnMouseExited(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(j == 0)
iv.setImage(new Image("sample/Sprites/blackPawn.png"));
}
});
iv.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
iv.setImage(new Image("sample/Sprites/blackPawnStroke.png"));
j = 1;
}
});
return iv;
}
}
【问题讨论】:
-
附上blackPawn类的代码
-
您的
blackPawn是否扩展了Node类? -
不要以小写开头的类命名
标签: java instanceof