Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中的JavaFX可以';找不到发射方法_Java_Scala_Javafx - Fatal编程技术网

Scala中的JavaFX可以';找不到发射方法

Scala中的JavaFX可以';找不到发射方法,java,scala,javafx,Java,Scala,Javafx,试图看看我是否可以在Scala中制作和运行JavaFX程序,我遇到了一个奇怪的问题,无法找到启动方法 以下是Java代码: package example; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.*; import javafx.stage.*; public class Program extends Application { @Over

试图看看我是否可以在Scala中制作和运行JavaFX程序,我遇到了一个奇怪的问题,无法找到启动方法

以下是Java代码:

package example;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.*;
import javafx.stage.*;

public class Program extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("Test.fxml"));

        Scene scene = new Scene(root, 300, 275);

        stage.setTitle("FXML Test");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
以及直接到scala的转换:

package example

import javafx.application.Application
import javafx.fxml.FXMLLoader
import javafx.scene._
import javafx.stage._

object Program extends Application {
  override def start(stage: Stage): Unit = {
    val root = FXMLLoader.load(getClass getResource "Test.fxml")

    val scene = new Scene(root, 300, 275)

    stage setTitle "FXML Test Scala"
    stage setScene scene
    stage.show
  }

  def main(args: Array[String]): Unit = launch(args) // this bit fails
}
我选择了一个1:1的翻译,看看它一开始是否有效,但正如我之前所说,编译器不知道Scala one中的
launch
是什么


那么我做错了什么?更重要的是,我如何解决这个问题?

在Google+Scala小组中询问,由于以下原因得到了以下有效解决方案:

package example

import javafx.application.Application
import javafx.fxml.FXMLLoader
import javafx.scene._
import javafx.stage._

object Program {
  def main(args: Array[String]): Unit = 
    Application.launch(classOf[Program], args: _*)
}

class Program extends Application {
    override def start(stage: Stage): Unit = {
    val root = FXMLLoader.load(getClass() getResource "Test.fxml")
    val scene = new Scene(root, 300, 275)
    stage setTitle "FXML Test Scala"
    stage setScene scene
    stage.show
  }
}