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