📄 calculatorframe.java
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator{ public static void main(String[] args) { CalculatorFrame frame=new CalculatorFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class CalculatorFrame extends JFrame{ public static final int w=300; public static final int h=200; public CalculatorFrame() { setTitle("Calculator made by sxl"); setSize(w,h); Container contentPane=getContentPane(); CalculatorPanel panel=new CalculatorPanel(); contentPane.add(panel); }} class CalculatorPanel extends JPanel{ private JTextField show; private JPanel panel; private JPanel newpanel; private double result; private String type; private boolean start; public CalculatorPanel() { setLayout(new BorderLayout()); show=new JTextField("0"); show.setEditable(false); result=0; type="="; start=true; add(show,BorderLayout.NORTH); ActionListener number=new NumberAction(); ActionListener type=new TypeAction(); ActionListener clear=new ClearAction(); panel=new JPanel(); panel.setLayout(new GridLayout(3,6)); addButton("7",number); addButton("8",number); addButton("9",number); addButton("+",type); addButton("-",type); addButton("C",clear); addButton("4",number); addButton("5",number); addButton("6",number); addButton("*",type); addButton("/",type); addButton("=",type); addButton("1",number); addButton("2",number); addButton("3",number); addButton("0",number); addButton(".",number); add(panel,BorderLayout.CENTER); } private void addButton(String label,ActionListener listener) { JButton button=new JButton(label); button.addActionListener(listener); panel.add(button); } private class ClearAction implements ActionListener { public void actionPerformed(ActionEvent event) { result=0; show.setText("0"); } } private class NumberAction implements ActionListener { public void actionPerformed(ActionEvent event) { String input=event.getActionCommand(); if(start){show.setText("");start=false;}; show.setText(show.getText()+input); } } private class TypeAction implements ActionListener { public void actionPerformed(ActionEvent event) { String newtype=event.getActionCommand(); if(start) { if(newtype.equals("-")) { show.setText(newtype); start=false; } else type=newtype; } else { calculate(Double.parseDouble(show.getText())); newtype=type; start=true; } } } public void calculate(double x) { if(type.equals("+")) result+=x; else if(type.equals("-")) result-=x; else if(type.equals("*")) result*=x; else if(type.equals("/")) result/=x; else if(type.equals("=")) result=x; show.setText(""+result); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -