举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java 饼 JavaFX 饼

java 饼 JavaFX 饼

2023-03-05 20:17 Java教程

java 饼 JavaFX 饼

java 饼

Java 饼是一种用于创建动态 Web 内容的开放源代码服务器端脚本语言。它可以在服务器上运行,并且可以生成 HTML、XML 或其他格式的文档,发送到浏览器端。Java 饼是一种面向对象的语言,它使用 Java 语法,但是不需要 Java 的运行时环境。

Java 饼的主要优势之一是它可以在多种平台上运行,包括 Windows、Linux 和 Mac OS X。此外,它也可以在多种 Web 服务器上运行,包括 Apache、IIS 和 Tomcat。因此,使用 Java 饼开发的应用程序可以在多个平台上都能得到很好的支持。

Java 饼也具有很好的扩展性。它具有大量内置函数库,使开发者能够快速开发出功能强大的 Web 应用程序。此外,Java 饼还具有大量扩展库(如 Struts、Hibernate 等),使开发者能够快速扩展出新功能。

Java 饼也具有很好的性能特性。它使用了 JIT 的方法来优化代码执行效率;此外,它也使用了内存回收来避免内存泄露问题。因此,使用 Java 饼开发出来的应用程序通常都具有很好的性能特性。

public class HelloWorld { 

    public static void main(String[] args) { 

        System.out.println("Hello World!"); 

    } 
}

JavaFX 饼图

JavaFX教程 - JavaFX饼图


表示圆圈中的数据的图表,每个切片表示百分比。

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.chart.PieChart.Data;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        PieChart pieChart = new PieChart();
        pieChart.setData(getChartData());
        primaryStage.setTitle("PieChart");

        StackPane root = new StackPane();
        root.getChildren().add(pieChart);
        primaryStage.setScene(new Scene(root, 400, 250));
        primaryStage.show();
    }

    private ObservableList<Data> getChartData() {
        ObservableList<Data> answer = FXCollections.observableArrayList();
        answer.addAll(new PieChart.Data("java", 17.56),
                new PieChart.Data("JavaFx", 31.37));
        return answer;
    }
}

上面的代码生成以下结果。

null

创建饼图

要创建饼图,我们需要PieChart类。

饼图数据包裹在PieChart.Data对象中。

每个PieChart.Data对象有两个字段:饼图扇区的名称及其对应的值。

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Side;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.chart.PieChart.Data;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {
  public static void main(String[] args) {
    launch(args);
  }
  @Override
  public void start(Stage primaryStage) {
    PieChart pieChart = new PieChart();
    pieChart.setData(getChartData());
    pieChart.setTitle("Title");
    pieChart.setLegendSide(Side.LEFT);
    pieChart.setClockwise(false);
    pieChart.setLabelsVisible(false);
    
    StackPane root = new StackPane();
    root.getChildren().add(pieChart);
    primaryStage.setScene(new Scene(root, 300, 250));
    primaryStage.show();
  }

  private ObservableList<Data> getChartData() {
    ObservableList<Data> answer = FXCollections.observableArrayList();
    answer.addAll(new PieChart.Data("java", 17),
            new PieChart.Data("JavaFx",31),
            new PieChart.Data("Swing",10),
            new PieChart.Data("IO",20),
            new PieChart.Data("NIO",21)
            );
    return answer;
  }
  
  
}

上面的代码生成以下结果。

null

处理饼图的事件

以下代码创建一个EventHandler对象来处理落入特定图表切片的MOUSE_PRESSED事件。


//package piechartsample;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.chart.*;
import javafx.scene.Group;
import javafx.scene.control.Label;
import javafx.scene.input.MouseEvent;

public class Main extends Application {

    @Override
    public void start(Stage stage) {
        Scene scene = new Scene(new Group());
        stage.setTitle("Imported Fruits");
        stage.setWidth(500);
        stage.setHeight(500);

        ObservableList<PieChart.Data> pieChartData =
                FXCollections.observableArrayList(
                new PieChart.Data("Grapefruit", 13),
                new PieChart.Data("Oranges", 25),
                new PieChart.Data("Plums", 10),
                new PieChart.Data("Pears", 22),
                new PieChart.Data("Apples", 30));

        final PieChart chart = new PieChart(pieChartData);
        chart.setTitle("Imported Fruits");
        final Label caption = new Label("");
        caption.setTextFill(Color.DARKORANGE);
        caption.setStyle("-fx-font: 24 arial;");

        for (final PieChart.Data data : chart.getData()) {
            data.getNode().addEventHandler(MouseEvent.MOUSE_PRESSED,
                    new EventHandler<MouseEvent>() {
                        @Override public void handle(MouseEvent e) {
                            caption.setTranslateX(e.getSceneX());
                            caption.setTranslateY(e.getSceneY());
                            caption.setText(String.valueOf(data.getPieValue()) 
                                + "%");
                        }
                    });
        }
                
        ((Group) scene.getRoot()).getChildren().addAll(chart, caption);
        stage.setScene(scene);
        //scene.getStylesheets().add("piechartsample/Chart.css");
        stage.show();
    }

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

上面的代码生成以下结果。




阅读全文
以上是VUE中文网为你收集整理的java 饼 JavaFX 饼全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们