【问题标题】:How to pass arguments into a JavaFX class being called from another class [duplicate]如何将参数传递给从另一个类调用的JavaFX类[重复]
【发布时间】:2019-12-12 09:53:46
【问题描述】:

我不愿意在这里展示我的大部分代码,因为它是用于课堂作业的,但是如果您需要查看某些内容,那么我很乐意将其添加到帖子中。 我的代码的目的是计算一个凸包并显示它。我的第一堂课计算线条并将它们存储在 Line[] 中。然后我通过在 main() 中写入 Application.launch(DrawConvexHull.class, args); 来调用 javaFX 类。但是我需要将 Line[] 线传递到 DrawConvexHull 类 start()。然而,当我通过向它添加参数来执行此操作时,它会引发一个错误,我没有覆盖 start()。这是我的 DrawConvex

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.shape.Line;


class DrawConvexHull extends Application{

  @Override
  public void start(Stage primaryStage) throws Exception{

    VBox box = new VBox();
    final Scene scene = new Scene(box,300, 250);
    scene.setFill(null);

    for (Line each : lines ) {
      if (each != null) {
        box.getChildren().add(each);
      }
    }

    primaryStage.setScene(scene);

    primaryStage.show();

  }



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

【问题讨论】:

  • 出于所有意图和目的,#start(stage) 方法是 JavaFX 应用程序的入口点。只需在该方法中创建行。
  • @Slaw 但是我会在说明中指定我必须在一个名为 computeConvexHull 的方法中计算它们
  • 您目前从#main(String[]) 打来的电话,对吗?只需将 Application#launch(Class,String...) 之前的所有内容移动到 #start(Stage) 方法内即可。
  • 因为这是一项学校作业,您可以随时询问您的老师我的建议是否可以接受。如果不是,请向您的老师寻求指导。
  • 话虽如此,我建议阅读How to Askminimal reproducible example 页面以及How do I ask and answer homework questions? Q&A 然后edit 你的问题,以尝试改进。我们很乐意帮助提出问题,但如果没有必要的信息,提供此类帮助可能是不可能的。

标签: java javafx


【解决方案1】:

只需从JavaFx 应用程序调用计算:

class DrawConvexHull extends Application{

  @Override
  public void start(Stage primaryStage) throws Exception{
    Model model = new Model();
    Line[] lines = model.computeConvexHull();
    VBox box = new VBox();
    final Scene scene = new Scene(box,300, 250);
    for (Line each : lines ) {
      if (each != null) {
        box.getChildren().add(each);
      }
    } 
    primaryStage.setScene(scene);
    primaryStage.show();    
  }  
  public static void main(String[] args) {
    launch(args);
  }
}


class Model{
  Line[] computeConvexHull(){
      //todo 
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多