[英]Event Handling for Pie Chart
I have created a javafx pie chart and want to do something when the user clicks on a slice of the pie. 我创建了一个Javafx饼图,并希望在用户单击饼图的一部分时执行某些操作。 I am following this tutorial:
我正在关注本教程:
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()) + "%");
}
});
I am getting these error warnings prior to compile: On the ".addEventHandler" 在编译之前,我收到以下错误警告:在“ .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>
On the "EventHandler" 在“ EventHandler”上
Bound mismatch: The type MouseEvent is not a valid substitute for the bounded parameter
<T extends Event> of the type EventHandler<T>
Does anyone have any insights into why I am getting these errors? 是否有人对我为什么会出现这些错误有任何见解?
The addEventHandler()
method takes two parameters: one of type T
, and one that has a super class T
. addEventHandler()
方法采用两个参数:一个为T
类型,另一个为具有超类T
You gave it an EventHandler
and an Integer
. 您给了它一个
EventHandler
和一个Integer
。 Since Integer
is not a super class of EventHandler
, you get an exception. 由于
Integer
不是EventHandler
的超类,因此会出现异常。
My guess is that you're accidentally using Java SE's MouseEvent instead of Java FX's MouseEvent . 我的猜测是您不小心使用了Java SE的MouseEvent而不是Java FX的MouseEvent 。
I made the following changes to fix the problem, th is is javafx specific. 我进行了以下更改以解决此问题,它是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.