我完全失去了atm。我过去一直在使用scenebuilder和javaFX,但现在我被困了大约5个小时,我没有更进一步。让我解释一下:
- 我有一个正在运行的java Eclipse项目,使用maven依赖项
- Main是我想使用JavaFX或将fxml加载到的地方
- 该程序获取许多VCC文件,并提取数据,将其全部放在excel中
- 这个程序可以运行,但我无法将FXML文件加载到main中,甚至无法在其中显示窗格
现在我的Java Main类必须扩展应用程序吗?我试了两种方法——都没用。
一些示例代码:
public void start(Stage primaryStage) {
try {
bpmain = new BorderPane(FXMLLoader.load(new File("src\fxml\UserInterface.fxml").toURI().toURL()));
primaryStage.setScene(new Scene(bpmain));
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
或者这个(来自原始文档(
public void start(Stage stage) {
Circle circ = new Circle(40, 40, 30);
Group root = new Group(circ);
Scene scene = new Scene(root, 400, 300);
stage.setTitle("My JavaFX Application");
stage.setScene(scene);
stage.show();
}
但是这个start方法没有被调用。。。我把它放在哪里?
我的程序应该看起来很简单。我想要一个小的UI窗口,让你选择VCC数据所在的文件夹,以及一个基本上应该运行Main方法的OK按钮。
因此,当它在Main中选择Path时,一个TextField会被替换(filepath(,只有一个简单的OK按钮,上面写着:是的,运行Main-因为Main工作得很好,只是我无法显示ui,我不知道如何将其真正连接到Main.java
感谢任何帮助-Ty
选项1
public class Launch extends Application {
public static Stage stage = null;
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/fxml/Main.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
this.stage = stage;
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
选项2:
public class SidebarController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
}
@FXML
void btnHome_OnMouseClicked(MouseEvent event) throws IOException {
BorderPane borderPane = (BorderPane) ((Node) event.getSource()).getScene().getRoot();
Parent sidebar = FXMLLoader.load(getClass().getResource("/fxml/ContentArea.fxml"));
borderPane.setCenter(sidebar);
}
}