gpt4 book ai didi

尽管已安装,JavaFX PieChart 工具提示仍不显示

转载 作者:行者123 更新时间:2023-11-30 02:16:11 26 4
gpt4 key购买 nike

我尝试为 PieChart 的每个“切片”显示一个工具提示,与 Chart.js 中的类似:

Tooltip example

我找到了this answer基本上试图在相同的框架中实现相同的目标。它有两个赞成票,从其他(已接受的)答案来看,这似乎也适用于其他图表类型。然而,从没有显示工具提示的意义上来说,该代码对我来说并不真正有用。

显示问题的示例代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.control.Button;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;


public class Main extends Application {

@Override
public void start(Stage primaryStage) {
BorderPane pane = new BorderPane();

PieChart chart = new PieChart();

Button randomValues = new Button();
randomValues.setOnAction(ae -> {
chart.getData().clear();
List<PieChart.Data> data = randomValues().stream().map(i -> new PieChart.Data("Test" + i % 10, i)).collect(Collectors.toList());
data.forEach(d -> {
Tooltip tip = new Tooltip();
tip.setText(d.getPieValue() + "");
Tooltip.install(d.getNode(), tip);
});
chart.getData().addAll(data);
});

pane.setCenter(chart);
pane.setBottom(randomValues);
primaryStage.setScene(new Scene(pane));
primaryStage.show();
}

private List<Integer> randomValues() {
return new Random().ints(5).boxed().collect(Collectors.toList());
}

public static void main(String[] args) {
launch(args);
}
}

我预计会出现类似于图片的弹出窗口,但实际上什么也没有显示。非常感谢任何帮助!

最佳答案

我只是搬家了

chart.getData().addAll(data);

以上

data.forEach(d -> {
Tooltip tip = new Tooltip();
tip.setText(d.getPieValue() + "");
Tooltip.install(d.getNode(), tip);
});

完整代码:

import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.control.Button;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Main extends Application
{

@Override
public void start(Stage primaryStage)
{
BorderPane pane = new BorderPane();

PieChart chart = new PieChart();

Button randomValues = new Button();
randomValues.setOnAction(ae -> {
chart.getData().clear();

List<PieChart.Data> data = randomValues().stream().map(i -> new PieChart.Data("Test" + i % 10, i)).collect(Collectors.toList());
chart.getData().addAll(data);
data.forEach(d -> {
Tooltip tip = new Tooltip();
tip.setText(d.getPieValue() + "");
Tooltip.install(d.getNode(), tip);
});

});

pane.setCenter(chart);
pane.setBottom(randomValues);
primaryStage.setScene(new Scene(pane));
primaryStage.show();
}

private List<Integer> randomValues()
{
return new Random().ints(5).boxed().collect(Collectors.toList());
}

public static void main(String[] args)
{
launch(args);
}
}

关于尽管已安装,JavaFX PieChart 工具提示仍不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com