无法在JavaFX线形图中获取工具提示
我正在使用折线图,我想在其中得到鼠标点击的工具提示。 这是代码。请让我知道我写错了什么,这样我就无法获得工具提示。我没有任何例外无法在JavaFX线形图中获取工具提示,javafx,linechart,Javafx,Linechart,我正在使用折线图,我想在其中得到鼠标点击的工具提示。 这是代码。请让我知道我写错了什么,这样我就无法获得工具提示。我没有任何例外 public class ChartPlot { static LineChart<Number,Number> linechart; static double[] xArray,yArray; static ArrayList<Double> xList,yList; public static XYChart.Serie
public class ChartPlot
{
static LineChart<Number,Number> linechart;
static double[] xArray,yArray;
static ArrayList<Double> xList,yList;
public static XYChart.Series series;
public static XYChart.Data<Number, Number> data;
public static LineChart linePlot(double[] x,double[] y)
{
xArray=new double[x.length];
yArray=new double[y.length];
xArray=x;
yArray=y;
//Defining the x axis
final NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("Wavelength");
//Defining the y axis
final NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Intensity");
//Creating the line chart
linechart= new LineChart<>(xAxis,yAxis);
linechart.getData().clear();
//Prepare XYChart.Series objects by setting data
series = new XYChart.Series();
//Setting the data to Line chart
for(int i = 0; i<xArray.length; i++)
{
data = new XYChart.Data<>(xArray[i], yArray[i]);
series.getData().add(data);
}
linechart.setCreateSymbols(false);
linechart.getData().add(series);
xAxis.setAutoRanging(true);
xAxis.setForceZeroInRange(false);
yAxis.setAutoRanging(true);
yAxis.setForceZeroInRange(false);
linechart.autosize();
linechart.applyCss();
String css=FXMLDocumentController.class.getResource("LSG.css").toExternalForm();
linechart.getStylesheets().add(css);
linechart.setLegendVisible(false);
linechart.setOnMouseEntered((MouseEvent event) -> {
System.out.println("Clicked on Chart");
Tooltip t = new Tooltip(data.getYValue().toString() + '\n' + data.getXValue().toString());
Tooltip.install(data.getNode(), t);
});
return linechart;
}
}
公共类图表
{
静态线形图;
静态双[]xArray,yArray;
静态数组列表xList,yList;
公共静态XYChart.系列;
公共静态XYChart。数据;
公共静态线形图线形图(双[]x,双[]y)
{
xArray=新的双精度[x.长度];
yArray=新的双[y.长度];
xArray=x;
雅雷=y;
//定义x轴
最终数字axis xAxis=新数字axis();
xAxis.setLabel(“波长”);
//定义y轴
最终数字axis yAxis=新数字axis();
yAxis.setLabel(“强度”);
//创建折线图
线形图=新线形图(xAxis,yAxis);
linechart.getData().clear();
//通过设置数据准备XYChart.Series对象
series=新的XYChart.series();
//将数据设置为折线图
对于(int i=0;i{
System.out.println(“点击图表”);
Tooltip t=新工具提示(data.getYValue().toString()+'\n'+data.getXValue().toString());
安装(data.getNode(),t);
});
返回线图;
}
}
我正在对折线图使用setMouseOnClick()函数,还有其他方法吗
提前感谢让我知道是否有帮助。这不是如何安装工具提示。每次将鼠标悬停在图表上时,您都会安装新的工具提示,因此实际上无法显示它。感谢您提供示例链接。我已经试过了。但是我在这方面出了差错。。。。。。。d、 getNode().setOnMouseEntered(事件->d.getNode().getStyleClass().add(“onHover”);------我得到空指针异常。请建议解决此问题。