Netbeans JavaFx无法选择主类

Netbeans JavaFx无法选择主类,java,javafx,netbeans,Java,Javafx,Netbeans,当我尝试在NetBeans中运行我的代码时,我得到一个空窗口,上面写着“浏览JavaFX应用程序类”,但没有可选择的。我怎样才能解决这个问题?我正在尝试创建一个纸牌游戏。 这是主方法的开始 import cardutils.Deck; public class Main { public static void main(String[] args) { Deck deck = new Deck(); System.ou

当我尝试在NetBeans中运行我的代码时,我得到一个空窗口,上面写着“浏览JavaFX应用程序类”,但没有可选择的。我怎样才能解决这个问题?我正在尝试创建一个纸牌游戏。 这是主方法的开始

import cardutils.Deck;
public class Main {

    public static void main(String[] args) {         
            Deck deck = new Deck();
            System.out.println(deck.toString());
    }
}

如果您想创建一个JavaFX应用程序,您需要创建一个类,该类扩展了JavaFX的
应用程序
类,并且还包含您的main方法。比如说:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Deck extends Application {

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


   @Override
   public void start(Stage stage) {
      Group root = new Group(new Label("Hello JavaFX!"));
      Scene scene = new Scene(root, 1024, 786);
      stage.setScene(scene);
      stage.show();
   }
}
然后简单地运行这个项目,Netbeans就会找到这个类,因为它包含一个main方法,并允许您选择它

但是,如果这个项目并不真正需要JavaFX(我只是想知道,因为您只是在向命令行打印一些东西),那么在创建Netbeans项目(JavaFX项目而不是普通的Java项目)时,您可能选择了错误的项目类型。在本例中,创建一个新的标准Java项目,并从旧项目复制代码


编辑:包含“可用类”的列表为空,因为Netbeans在您似乎创建的javafx项目中找不到任何扩展
javafx.application.application
的类。

如果您想创建一个javafx应用程序,您需要创建一个类来扩展JavaFX的
应用程序
类,该类还包含您的main方法。比如说:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Deck extends Application {

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


   @Override
   public void start(Stage stage) {
      Group root = new Group(new Label("Hello JavaFX!"));
      Scene scene = new Scene(root, 1024, 786);
      stage.setScene(scene);
      stage.show();
   }
}
然后简单地运行这个项目,Netbeans就会找到这个类,因为它包含一个main方法,并允许您选择它

但是,如果这个项目并不真正需要JavaFX(我只是想知道,因为您只是在向命令行打印一些东西),那么在创建Netbeans项目(JavaFX项目而不是普通的Java项目)时,您可能选择了错误的项目类型。在本例中,创建一个新的标准Java项目,并从旧项目复制代码



编辑:包含“可用类”的列表为空,因为Netbeans在您创建的javafx项目中找不到任何扩展
javafx.application.application
的类。

我也遇到类似问题,它们似乎是由项目文件夹中的剩余文件引起的。我删除了文件夹和其中的所有内容,并重新创建了一个新项目。这就解决了问题。

我也遇到了类似的问题,它们似乎是由项目文件夹中的剩余文件引起的。我删除了文件夹和其中的所有内容,并重新创建了一个新项目。这就解决了问题。

我也有同样的问题。您可能需要显式设置源目录路径。我通过显式设置源目录解决了这个问题。文件->项目属性->添加文件夹->浏览您的src目录。构建它并再次运行。我可以运行这个应用程序。

我也有同样的问题。您可能需要显式设置源目录路径。我通过显式设置源目录解决了这个问题。文件->项目属性->添加文件夹->浏览您的src目录。构建它并再次运行。我可以运行应用程序。

你能给我们看一个吗?你的意思是什么?我的项目都不会运行:(它们不需要运行。这就是你发布它们的原因,因此我们可以帮助你让它们运行。请尝试使用Clean&Build(shift-F6)、run File(shift-F11)或从命令行运行,当我尝试构建它时,如果窗口显示“可用类”,则显示一个空窗口。列表是空的。你能给我们看一个吗?你的意思是什么?我的项目都不会运行:(它们不需要运行。这就是为什么你发布它们,这样我们可以帮助你让它们运行。尝试一个干净的构建(shift-F6)、运行文件(shift-F11)或从命令行运行,当我试图构建它时,一个空窗口上写着“可用类”。列表为空。我将其作为javaFx,因为我与合作伙伴一起使用github。我已尝试刷新缓存。有什么区别吗?简单地说:如果您想或需要使用javaFx,请使用与我上面发布的类似的类,让Netbeans查找(“可用类”)并运行您的JavaFX应用程序。如果您不想要或不需要JavaFX,只需在Netbeans中创建一个普通项目,它就会将带有普通
main()
方法的类识别为可执行类,并允许您运行它。@TobiasHaraldsson注意,您实际上并不需要
main()
方法或
application.launch()
method。他的代码在没有它们的情况下可以正常工作。@LuminousNutria是的,他的代码可以编译,但没有main方法则无法执行任何操作:-)我把它作为一个javaFx,因为我和一个合作伙伴一起使用github。我尝试过刷新缓存。有什么区别吗?简单地说:如果你想或需要使用javaFx,请使用一个与我上面发布的类似的类,让Netbeans找到(“可用类”)并运行您的JavaFX应用程序。如果您不想要或不需要JavaFX,只需在Netbeans中创建一个普通项目,它就会将带有普通
main()
方法的类识别为可执行类,并允许您运行它。@TobiasHaraldsson注意,您实际上并不需要
main()
方法或
application.launch()
method。他的代码在没有它们的情况下可以正常工作。@LuminousNutria是的,他的代码可以编译,但没有main方法则无法执行任何操作:-)