#javafx #hover #bar-chart
#javafx #наведение #гистограмма
Вопрос:
мне нужно установить наведение курсора мыши на панель в гистограмме.
У меня есть код, который показывает гистограмму, и мне нужно показывать значения по оси y при пересечении штриховой диаграммы на графике.
XYChart.Series set1 = new XYChart.Series<>();
XYChart.Series series1 = new XYChart.Series();
for(int i = 0; i< suply.size(); i )
{
set1.getData().add(new XYChart.Data(suply.get(i).getName(), Float.parseFloat(suply.get(i).getNum())));
final XYChart.Data<String, Number> data = new XYChart.Data(suply.get(i).getName(), Float.parseFloat(suply.get(i).getNum()));
data.nodeProperty().addListener(new ChangeListener<Node>() {
@Override public void changed(ObservableValue<? extends Node> ov, Node oldNode, Node newNode) {
if (newNode != null) {
}
}
});
series1.getData().add(data);
}
barChart.getData().add(series1);
//now you can get the nodes.
for (Series<String, Number> serie: barChart.getData()){
for (XYChart.Data<String, Number> item: serie.getData()){
item.getNode().setOnMousePressed((MouseEvent event) -> {
System.out.println("you clicked " item.toString() serie.toString());
});
}
}
barChart.setCursor(Cursor.CROSSHAIR);
Куда поместить код для наведения на гистограмму и как?
Комментарии:
1. не совсем понимаю вопрос: если вы знаете, как / где зарегистрировать обработчик нажатия, в чем проблема с регистрацией всплывающей подсказки?
2. я никогда не работаю с наведением, я не знаю, как установить, я получаю значение в консоли при нажатии гистограммы, но не знаю, как установить значение на диаграмме, чтобы увидеть
3. Спасибо за помощь, я пытаюсь использовать всплывающую подсказку
Ответ №1:
Я нашел решения
for (final Series<String, Number> series : barChart.getData()) {
for (final XYChart.Data<String, Number> data : series.getData()) {
Tooltip tooltip = new Tooltip();
tooltip.setText(data.getXValue().toString() " "
data.getYValue().toString());
Tooltip.install(data.getNode(), tooltip);
}
}