我正在用 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提供的答案是解决这个问题的完美方案。
谢谢你,珠宝海。