我希望能夠通過將changelistener附加到整數 (mouse.x)來實現此目的。但getPointerInfo()。getLocation();一旦初始化。之後,該位置不更新。我怎樣才能讓這些changelisteners在價值的變化上工作?如何使用changelistener監視鼠標位置x y的更改?
也許有一個更好的方法來做到這一點。任何幫助表示讚賞。
public class TheMidiApp extends Application {
@Override
public void start(Stage stage) throws Exception {
Point mouse = java.awt.MouseInfo.getPointerInfo().getLocation();
System.out.println("MouseX " + mouse.x);
System.out.println("MouseY " + mouse.y);
//Changelistener X
IntegerProperty changeValueMouseX = new SimpleIntegerProperty(mouse.x);
changeValueMouseX.addListener(new ChangeListener<Number>(){
@Override
public void changed(ObservableValue <? extends Number> observableValue, Number oldValue, Number newValue){
System.out.println("OLD MOUSE X VALUE: " + oldValue);
System.out.println("NEW MOUSE X VALUE: " + newValue);
}
});
//Changelistener Y
IntegerProperty changeValueMouseY = new SimpleIntegerProperty(mouse.y);
changeValueMouseX.addListener(new ChangeListener<Number>(){
@Override
public void changed(ObservableValue <? extends Number> observableValue, Number oldValue, Number newValue){
System.out.println("OLD MOUSE Y VALUE: " + oldValue);
System.out.println("NEW MOUSE Y VALUE: " + newValue);
}
});
MouseX = mouse.x;
MouseY = mouse.y;
您需要在根節點上有一個偵聽器。我會在根節點上嘗試onMouseMoved。 – Sedrick