从Javafx中的另一个Java类访问一个Java类

时间:2015-11-10 14:28:36

标签: java graph charts javafx

我无法在javafx应用程序中调用另一个类的类。 我在java中制作了一个饼图。单独调用时会运行 成功。但是,当我通过使用此代码从当前类的另一个类访问时使用此代码

Graph main = new Graph();
Application.launch();

它不起作用。

这是从上面调用的图形代码,坐在自己的类中。

package semi_final1;
//package Graph;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.chart.*;
import javafx.scene.Group;
/**
 *
 * @author 
 */
public class Graph extends Application {
  @Override public void start(Stage stage) {
        Scene scene = new Scene(new Group());
        stage.setTitle("Analysis");
        stage.setWidth(500);
        stage.setHeight(500);
      ObservableList<PieChart.Data> pieChartData =
                FXCollections.observableArrayList(
                new PieChart.Data("Levels", 13),
                new PieChart.Data("Points", 25),
                new PieChart.Data("Questions", 10),
                new PieChart.Data("Answers", 22),
                new PieChart.Data("Length of Contents", 20),
                 new PieChart.Data("Likes", 20),
                new PieChart.Data("Dislikes", 10),
                 new PieChart.Data("Jaccard", 10));
        final PieChart chart = new PieChart(pieChartData);
        chart.setTitle("Imported Fruits");

        ((Group) scene.getRoot()).getChildren().add(chart);
        stage.setScene(scene);
        stage.show();
    }

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

1 个答案:

答案 0 :(得分:0)

Application.launch(String...)仅在从扩展应用程序的类调用时才有效(该类将用作Application类)。如果要从其他类启动javafx应用程序,则需要使用Application.launch(Class, String...方法:

Application.launch(Graph.class);

请注意,您不得从同一程序中启动超过1 Application

(如果您计划这样做,请将场景图的代码移动到不同的类别;例如,在这种情况下使用fxml + controller会是一个好主意)