我是javaFx的新手,我想创建一个类似griddles的游戏。 我想要做的第一件事是了解事件处理如何工作。用JavaFx同时处理多个事件
所以,我创建了一个简单的矩形板,并用MouseEvent和一个事件处理程序iv'e创建了每个矩形。
我想要做的是: 如果该事件被点击鼠标左键,绘制在矩形, 否则,如果该事件的MouseEnter和鼠标左键已经按下,油漆当前矩形红色。
我想这应该是非常基本的,但是当我实现了这个我只得到鼠标按下并在第一个矩形进我点击鼠标上的最后一个矩形输入时,我辞退鼠标左键点击..
这是事件处理类:
public void handle(MouseEvent event) {
if(event.getEventType().equals(MouseEvent.MOUSE_PRESSED)) {
System.out.println("Pressed on " + row + ", " + col);
} else if (event.getEventType().equals(MouseEvent.MOUSE_ENTERED)) {
System.out.println("Entered " + row + ", " + col);
}
}
,这是我附上事件:
private void addRectangles() {
for (int row = 0; row < rows; row++) {
for (int col = 0; col < cols; col++) {
Rectangle rectangle = new Rectangle(col * CELL_SIZE, row * CELL_SIZE, CELL_SIZE, CELL_SIZE);
rectangle.setStroke(Color.WHITE);
rectangle.addEventHandler(MouseEvent.ANY, new ShapeColorChanger(row, col, rectangle));
getChildren().add(rectangle);
}
}
}
所以,如果我在0,0和DRA按下一个矩形gging鼠标矩形0.3(而在0,1和0,2去在矩形)我得到这样的输出:
输入0,0
压在0,0
输入0 ,3
控制器版本,你是什么意思?我也尝试拆分成MouseEvent.Pressed和MouseEvent.Entered,但得到了相同的结果 – TalOhana
去这里这是你需要的。 http://www.java2s.com/Code/Java/JavaFX/Listentoallmouseevents.htm – Sedrick