Я использую линейный график, в котором я хотел бы получить всплывающую подсказку при щелчке мыши.
Вот код Пожалуйста, дайте мне знать, что я написал неправильно, чтобы я не смог получить всплывающую подсказку. У меня нет никаких исключений.
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;
}
}
Я использую функцию setMouseOnClick () для линейной диаграммы. Есть ли другой способ сделать это?
Заранее спасибо