JavaFX LineChart Hover Values
Je suis dans le processus de création d'une ligne graphique en JavaFX. Tout est bon actuellement et il a réussi à crée le tableau avec les données dont j'ai besoin à partir d'une base de données de la procédure stockée. De toute façon ce que j'ai besoin si possible pour chaque point de données sur le graphique en courbes de disposer d'un événement souris planer sur elle la valeur derrière le point spécifique, par exemple £150,000. J'ai vu des exemples de ce été fait sur PieCharts où il montre le % de la valeur sur le vol stationnaire, mais je ne trouve pas d'exemples n'importe où pour LineCharts, cela peut-il être fait?
Quelqu'un peut me pointer dans la bonne direction, si possible?
Code de la mesure:
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;
}
Réponse fournie par jewelsea est une solution parfaite à ce problème.
Merci, jewelsea.
source d'informationauteur Uniqum
Vous devez vous connecter pour publier un commentaire.
Utilisation XYChart.Les données.setNode(hoverPane) pour afficher un noeud personnalisé pour chaque point de données. Faire de la hoverNode un récipient comme un StackPane. Ajouter la souris des écouteurs d'événement, de sorte que vous savez quand la souris entre et feuilles le nœud. Sur entrer en, place une Étiquette de la valeur à l'intérieur de la hoverPane. À la sortie, retirer l'étiquette de la hoverPane.
Il y a quelques exemple de code pour illustrer cette technique.
Sortie de l'exemple de code s'affiche avec le curseur survole le 22 nœud.
À L'Aide Info-Bulle: