[英]Event Handling for Pie Chart
我創建了一個Javafx餅圖,並希望在用戶單擊餅圖的一部分時執行某些操作。 我正在關注本教程:
for (final PieChart.Data data : chart.getData()) {
data.getNode().addEventHandler(MouseEvent.MOUSE_PRESSED,
new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent e) {
caption.setTranslateX(e.getSceneX());
caption.setTranslateY(e.getSceneY());
caption.setText(String.valueOf(data.getPieValue()) + "%");
}
});
在編譯之前,我收到以下錯誤警告:在“ .addEventHandler”上
Bound mismatch: The generic method addEventHandler(EventType<T>, EventHandler<?
superT>) of type Node is not applicable for the arguments (Integer, new
EventHandler<MouseEvent> (){}). The inferred type MouseEvent&Event is not a valid
substitute for the bounded parameter <T extends Event>
在“ EventHandler”上
Bound mismatch: The type MouseEvent is not a valid substitute for the bounded parameter
<T extends Event> of the type EventHandler<T>
是否有人對我為什么會出現這些錯誤有任何見解?
addEventHandler()
方法采用兩個參數:一個為T
類型,另一個為具有超類T
您給了它一個EventHandler
和一個Integer
。 由於Integer
不是EventHandler
的超類,因此會出現異常。
我的猜測是您不小心使用了Java SE的MouseEvent而不是Java FX的MouseEvent 。
我進行了以下更改以解決此問題,它是javafx特有的。
for (final PieChart.Data data : chart.getData()) {
data.getNode().addEventHandler(javafx.scene.input.MouseEvent.MOUSE_PRESSED,
new EventHandler<javafx.scene.input.MouseEvent>() {
@Override public void handle(javafx.scene.input.MouseEvent e) {
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.