Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/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 如何使用按钮从主窗口启动窗口_Java_Javafx - Fatal编程技术网

Java 如何使用按钮从主窗口启动窗口

Java 如何使用按钮从主窗口启动窗口,java,javafx,Java,Javafx,因此,我目前正在学院为一个班级做一个项目,我遇到了一个问题。我只是一名大二学生,所以我不太了解高级方法或任何东西,但现在我们正在构建一个程序,它显示一个带有两个按钮的窗口。1个按钮启动贷款计算器,另一个按钮启动401k计算器。我把这两个计算器的程序作为单独的class/.java文件制作,需要制作第三个主文件,当你点击一个按钮时,它会打开两个窗口中的一个。如何使用按钮从现有窗口启动新窗口 每个类都有一个起始和主方法,这是问题所在吗?三个文件中的每一个都会自动启动并正确显示窗口,但我无法将两个计算

因此,我目前正在学院为一个班级做一个项目,我遇到了一个问题。我只是一名大二学生,所以我不太了解高级方法或任何东西,但现在我们正在构建一个程序,它显示一个带有两个按钮的窗口。1个按钮启动贷款计算器,另一个按钮启动401k计算器。我把这两个计算器的程序作为单独的class/.java文件制作,需要制作第三个主文件,当你点击一个按钮时,它会打开两个窗口中的一个。如何使用按钮从现有窗口启动新窗口


每个类都有一个起始和主方法,这是问题所在吗?三个文件中的每一个都会自动启动并正确显示窗口,但我无法将两个计算器绑定到初始的2按钮选择窗口。

您将有一个基类和一个主方法,它将实例化其他类。您可以将按钮添加到此窗口,这些按钮将启动其他窗口。见评论:

public class Main {

    public static void main(String[] args) {

        //Main window and panel
        JFrame mainWindow = new JFrame();
        JPanel mainPanel = new JPanel();

        //The calculator classes
        FourZeroOneCalc fourCalc = new FourZeroOneCalc();
        LoanCalc lc = new LoanCalc();

        //
        mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add a button for each and a listener on each button that opens the calculator windows
        JButton launchFourCalc = new JButton("401k Calculator");
        launchFourCalc.addActionListener(e->{
            fourCalc.setVisible(true);
        });
        JButton launchLoanCalc = new JButton("Loan Calculator");
        launchLoanCalc.addActionListener(e->{
            lc.setVisible(true);
        });

        //Add everything to the main window and show it
        mainPanel.add(launchLoanCalc);
        mainPanel.add(launchFourCalc);
        mainWindow.add(mainPanel);
        mainWindow.pack();
        mainWindow.setVisible(true);

    }

}
贷款计算器和401k计算器如下所示:

//This class would be the same as your existing class but it extends JFrame so it can be opend as a window
public class FourZeroOneCalc extends JFrame{
    private static final long serialVersionUID = 1L;
    //constructor has to handle the UI stuff, and anything else your existing class does
    public FourZeroOneCalc(){
        //UI stuff that you probably already had in your existing program
        JPanel panel = new JPanel();
        JLabel l = new JLabel("401k Calcluator");
        panel.add(l);
        this.add(panel);
        this.pack();

    }
    //Additional methods etc. that your existing class has
}

您将有一个基类和一个主方法,它将实例化其他类。您可以将按钮添加到此窗口,这些按钮将启动其他窗口。见评论:

public class Main {

    public static void main(String[] args) {

        //Main window and panel
        JFrame mainWindow = new JFrame();
        JPanel mainPanel = new JPanel();

        //The calculator classes
        FourZeroOneCalc fourCalc = new FourZeroOneCalc();
        LoanCalc lc = new LoanCalc();

        //
        mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add a button for each and a listener on each button that opens the calculator windows
        JButton launchFourCalc = new JButton("401k Calculator");
        launchFourCalc.addActionListener(e->{
            fourCalc.setVisible(true);
        });
        JButton launchLoanCalc = new JButton("Loan Calculator");
        launchLoanCalc.addActionListener(e->{
            lc.setVisible(true);
        });

        //Add everything to the main window and show it
        mainPanel.add(launchLoanCalc);
        mainPanel.add(launchFourCalc);
        mainWindow.add(mainPanel);
        mainWindow.pack();
        mainWindow.setVisible(true);

    }

}
贷款计算器和401k计算器如下所示:

//This class would be the same as your existing class but it extends JFrame so it can be opend as a window
public class FourZeroOneCalc extends JFrame{
    private static final long serialVersionUID = 1L;
    //constructor has to handle the UI stuff, and anything else your existing class does
    public FourZeroOneCalc(){
        //UI stuff that you probably already had in your existing program
        JPanel panel = new JPanel();
        JLabel l = new JLabel("401k Calcluator");
        panel.add(l);
        this.add(panel);
        this.pack();

    }
    //Additional methods etc. that your existing class has
}

您是在寻找Swing答案还是JavaFX?你对FXML的看法完成了吗?遗憾的是,我不知道FXML是什么,谢谢你们的回答。我将取消windows的概念,让整个过程像我们经常做的那样通过终端完成,我只是想挑战自己,制作弹出式窗口菜单版本。我正在寻找javaFX,因为我没有选择尝试swing,但我会选择swing答案,因为我计划很快给它一个机会。你是在寻找swing答案还是javaFX?你对FXML的看法完成了吗?遗憾的是,我不知道FXML是什么,谢谢你们的回答。我将取消windows的概念,让整个过程像我们经常做的那样通过终端完成,我只是想挑战自己,制作弹出式窗口菜单版本。我一直在寻找javaFX,因为我没有选择尝试swing,但我会选择swing答案,因为我计划很快尝试一下。这个问题被标记为javaFX,但这是一个基于swing的解决方案,因此可能会让提问者感到困惑。完美的摇摆解决方案:-)你是对的,我错了!我没有注意到JavaFX的标签,只是假设OP在一个介绍课程中,倾向于使用swing。我需要更仔细地阅读!这个问题被标记为JavaFX,但这是一个基于Swing的解决方案,因此它可能会让提问者感到困惑。完美的摇摆解决方案:-)你是对的,我错了!我没有注意到JavaFX的标签,只是假设OP在一个介绍课程中,倾向于使用swing。我需要更仔细地阅读!