【问题标题】:Javafx - set hover for barchartJavafx - 为条形图设置悬停
【发布时间】:2019-04-24 08:44:22
【问题描述】:

我需要将鼠标悬停在条形图中的栏上。

我有显示条形图的代码,当跨越图形上的条形时,我需要显示 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);

将悬停代码放置在条形图上的位置以及如何放置?

【问题讨论】:

  • 不太明白这个问题:如果您知道如何/在哪里注册按下的处理程序,那么注册工具提示有什么问题?
  • 我从不使用悬停,我现在不知道如何设置,按下条形图时我会进入控制台值,但现在不知道如何在图表上设置值以查看
  • 感谢帮助,我尝试使用工具提示

标签: javafx hover bar-chart


【解决方案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);
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多