| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 
 | public class Main extends Application {
    private static class Struct {
        int n;
        int x;
        int y;
    }
 
    private Chart createChart() {
        final int minN = 0;
        final int maxN = 3;
        final int minX = 0;
        final int maxX = 5;
        final int minY = 0;
        final int maxY = (int)Math.pow(maxX, maxN);
        final List<LineChart.Series> seriesList = new LinkedList();
        for (int n = minN; n <= maxN; n++) {
            final LineChart.Series series = new LineChart.Series<>();
            series.setName(String.format("n = %d", n));
            for (int x = minX; x <= maxX; x++) {
                final int y = (int)Math.pow(x, n);
                final LineChart.Data data = new LineChart.Data<>(x, y);                
                final Struct struct = new Struct();
                struct.n = n;
                struct.x = y;
                struct.y = y;
                series.getData().add(data);
                data.nodeProperty().addListener(observable -> {
                    final Node node = data.getNode();
                    final String text = String.format("%d = Math.pow(%d, %d)", struct.y, struct.x, struct.n);
                    final Tooltip tooltip = new Tooltip(text);
                    Tooltip.install(node, tooltip);
                });
            }
            seriesList.add(series);
        }
        final NumberAxis xAxis = new NumberAxis("x", minX, maxX, 1);
        final NumberAxis yAxis = new NumberAxis("y = Math.pow(x, n)", minY, maxY, (maxY - minY) / 4);
        final LineChart chart = new LineChart(xAxis, yAxis);
        chart.getData().setAll(seriesList);
        chart.setTitle("Math.pow()");
        return chart;
    }
 
    @Override
    public void start(Stage primaryStage) {
        final StackPane root = new StackPane();
        root.getChildren().add(createChart());
        Scene scene = new Scene(root, 500, 500);
        primaryStage.setTitle("Test chart tip");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
} | 
Partager