import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CalculatorEnd extends JFrame implements ActionListener {
private CardLayout cardLayout;
private JPanel mainPanel;
public CalculatorEnd() {
// Set up the frame
setTitle("Calculator");
setSize(400, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// Create menu bar
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Mode");
JMenuItem standardItem = new JMenuItem("Standard");
JMenuItem scientificItem = new JMenuItem("Scientific");
JMenuItem programmerItem = new JMenuItem("Programmer");
standardItem.addActionListener(this);
scientificItem.addActionListener(this);
programmerItem.addActionListener(this);
menu.add(standardItem);
menu.add(scientificItem);
menu.add(programmerItem);
menuBar.add(menu);
setJMenuBar(menuBar);
// Set up card layout
cardLayout = new CardLayout();
mainPanel = new JPanel(cardLayout);
// Add different calculator panels
mainPanel.add(createStandardCalculatorPanel(), "Standard");
mainPanel.add(createScientificCalculatorPanel(), "Scientific");
mainPanel.add(createProgrammerCalculatorPanel(), "Programmer");
add(mainPanel);
cardLayout.show(mainPanel, "Standard");
}
private JPanel createStandardCalculatorPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JLabel label = new JLabel("Standard Calculator", JLabel.CENTER);
panel.add(label, BorderLayout.CENTER);
return panel;
}
private JPanel createScientificCalculatorPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JLabel label = new JLabel("Scientific Calculator", JLabel.CENTER);
panel.add(label, BorderLayout.CENTER);
return panel;
}
private JPanel createProgrammerCalculatorPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JLabel label = new JLabel("Programmer Calculator", JLabel.CENTER);
panel.add(label, BorderLayout.CENTER);
return panel;
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
cardLayout.show(mainPanel, command);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new CalculatorEnd().setVisible(true);
});
}
}
在这个代码的基础上,进行标准计算器,科学计算器,程序员计算器的界面实现,以及运算的实现