我正在用JavaFX创建折线图。目前一切都很好,它成功地使用数据库存储过程中需要的数据创建了图表。无论如何,如果可能的话,我需要对LineChart上的每个数据点进行鼠标悬停事件,该事件指出了特定点后面的值,例如150,000英镑。我已经在PieCharts上看到了此示例,该示例显示了悬停时的%值,但是我在LineCharts的任何地方都找不到示例,这是否可以完成?
如果可能的话,有人可以指出我正确的方向吗?
到目前为止的代码:
private static final String MINIMIZED = "MINIMIZED";
private static final String MAXIMIZED = "MAXIMIZED";
private static String chartState = MINIMIZED;
// 12 Month Sales Chart
XYChart.Series<String, Number> series = new XYChart.Series<>();
XYChart.Series<String, Number> series2 = new XYChart.Series<>();
public void getDeltaData() {
try {
Connection con = DriverManager.getConnection(connectionUrl);
//Get all records from table
String SQL = "";
Statement stmt = con.createStatement();
//Create the result set from query execution.
ResultSet rs = stmt.executeQuery(SQL);
while (rs.next()) {
series.getData().add(new XYChart.Data<String, Number>(rs.getString(1),
Double.parseDouble(rs.getString(7))));
series2.getData().add(new XYChart.Data<String, Number>(rs.getString(1),
Double.parseDouble(rs.getString(8))));
}
rs.close();
stmt.close();
} catch (Exception e) {
}
yearChart = createChart();
}
protected LineChart<String, Number> createChart() {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
// setup chart
series.setName("Target");
series2.setName("Actual");
xAxis.setLabel("Period");
yAxis.setLabel("£");
yearChart.getData().add(series);
yearChart.getData().add(series2);
yearChart.setCreateSymbols(false);
return yearChart;
}
jewelsea提供的答案是此问题的完美解决方案。
谢谢你,宝石海。
一只斗牛犬
相关分类