Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Java GUI应用程序中的OOP编程_Java_Oop_User Interface_Javafx - Fatal编程技术网

Java GUI应用程序中的OOP编程

Java GUI应用程序中的OOP编程,java,oop,user-interface,javafx,Java,Oop,User Interface,Javafx,我是面向对象编程的新手(VBA是我的源语言),现在我正在学习Java以获得关于它的线索 我的第一个控制台程序是一个小的文本冒险,其中包含了一些类,如敌人,玩家,项目等等,这确实帮助我进入了OOP 第二个应用程序是JavaFX 我想构建另一个更复杂的GUI应用程序,比如带有更多场景和按钮的任务规划器 我真的不知道如何在这样的项目中使用类和对象 我倾向于把它写下来,就像这个例子: 我计划了更多的场景和不同的按钮。但是把所有的东西分解一下,我看不出制作类或对象对我有什么帮助。我想定义我所有的按钮、图片

我是面向对象编程的新手(VBA是我的源语言),现在我正在学习Java以获得关于它的线索

我的第一个控制台程序是一个小的文本冒险,其中包含了一些类,如
敌人
玩家
项目
等等,这确实帮助我进入了OOP

第二个应用程序是
JavaFX

我想构建另一个更复杂的GUI应用程序,比如带有更多场景和按钮的任务规划器

我真的不知道如何在这样的项目中使用类和对象

我倾向于把它写下来,就像这个例子:

我计划了更多的场景和不同的按钮。但是把所有的东西分解一下,我看不出制作
对象
对我有什么帮助。我想定义我所有的按钮、图片、表格和东西,并将它们放到布局中,这是我的
自然方法


我想错了吗?如果只是“VBA思维”在欺骗我,有人可以帮助我吗?

我将把这当作一个更一般的问题,而不仅仅是针对javafx。一个起点可能是将用户界面拆分为逻辑部分,并将其封装到类中。因此,您可能拥有从容器类继承的类,而在顶级类中,您只需组合这些容器类并处理其中的细节。这将使您的顶级课程更干净


当然,这只是一个非常通用的概念,只是作为一个起点。

嗯,不确定这是否能帮助你,但是。。。首先,类是创建类似对象的“模板”。如果您在程序中需要类似的东西,您应该创建这样的模板,并在需要时使用它来创建对象。如果不是……那就不要强迫它。:)JavaFx的好处是,您可以使用FXML创建视图,从而增强GUI功能,同时简化代码。试试看,它会帮你的


祝你好运:)

虽然这是一个有趣而重要的话题,但这个问题对于堆栈溢出来说太广泛了。这里的问题必须用特定的解决方案解决一个狭隘的编程问题。广泛的讨论是离题的。我建议去看看。
public class FirstGUI extends Application {

    Scene scene1, scene2;

@Override
public void start(Stage primaryStage) {

    primaryStage.setTitle("My First JavaFX GUI");

        //Scene 1
        Label label1 = new Label("This is the first scene");
        Button button1 = new Button("Go to scene 2");
        button1.setOnAction(e -> primaryStage.setScene(scene2));
        VBox layout1 = new VBox(20);
        layout1.getChildren().addAll(label1, button1);
        scene1 = new Scene(layout1, 300, 250);

        //Scene 2
        Label label2 = new Label("This is the second scene");
        Button button2 = new Button("Go to scene 1");
        button2.setOnAction(e -> primaryStage.setScene(scene1));
        VBox layout2 = new VBox(20);
        layout2.getChildren().addAll(label2, button2);
        scene2 = new Scene(layout2, 300, 250);

        primaryStage.setScene(scene1);
        primaryStage.show();
    }

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

}