You'll have one base class with a single Main method, and it will instantiate the other classes. You would add your buttons to this window, and the buttons will launch the other windows. See the comments:
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);
}
}
Loan calculator and 401k calculator would be like this:
//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
}