我是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