📄 mycalculator.java
字号:
//
//
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import javax.swing.event.*;
public class myCalculator extends JFrame implements ActionListener{
private GridBagLayout layout;
private GridBagConstraints constraints;
private Container container;
//creat GUI components
private JTextField textField=new JTextField("");
private JTextField textField2=new JTextField("");
private JTextField textField3=new JTextField("中间结果:");
private String names[]=
{ "<==","CE","C","MS",
"7","8","9","/","sqrt","MR",
"4","5","6","*","%","MC",
"1","2","3","-","1/x","M+",
"0","+/-",".","+","=","About"};
private JButton buttons[] = new JButton[ names.length ];
double answer,mid,MM;
short remember31 = -1, remember32 = -1;//remember31记住本次运算符,remember32记住前次运算符
public myCalculator()
{super("Almost Final Version1.0");//记录版本
container=getContentPane();
layout=new GridBagLayout();
container.setLayout(layout);
constraints = new GridBagConstraints();
for ( int count = 0; count < buttons.length; count++ )
buttons[ count ] = new JButton( names[ count ] );
//textField
constraints.weightx = 1;
constraints.weighty = 1;
constraints.fill = GridBagConstraints.BOTH;
constraints.gridwidth = 4;
addComponent(textField);
textField.setEditable(false);
textField.setBackground(new Color(255,255,255));
textField.addActionListener(this);
textField.setFont( new Font( "Monospaced", Font.BOLD, 19 ) );
//textField3
constraints.weightx = 1;
constraints.weighty = 1;
constraints.fill = GridBagConstraints.BOTH;
constraints.gridwidth = GridBagConstraints.REMAINDER;
addComponent(textField3);
textField3.setEditable(false);
textField3.setBackground(new Color(230,230,230));
textField3.addActionListener(this);
textField3.setFont( new Font( "Monospaced", Font.BOLD, 19 ) );
//textField2
constraints.gridwidth = 2;
addComponent(textField2);
textField2.setEditable(false);
textField2.setBackground(new Color(0,151,151));
textField2.addActionListener(this);
textField2.setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//<--
constraints.gridwidth = 1;
addComponent(buttons[0]);
buttons[0].setBackground(new Color(228,163,27));
buttons[0].addActionListener(this);
buttons[0].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//CE
constraints.gridwidth = 1;
addComponent(buttons[1]);
buttons[1].setBackground(new Color(228,163,27));
buttons[1].addActionListener(this);
buttons[1].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//C
constraints.gridwidth = GridBagConstraints.RELATIVE;
addComponent(buttons[2]);
buttons[2].setBackground(new Color(255,0,0));
buttons[2].setForeground(new Color(255,255,255));
buttons[2].addActionListener(this);
buttons[2].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//MS
constraints.gridwidth = GridBagConstraints.REMAINDER;
addComponent(buttons[3]);
buttons[3].setBackground(new Color(50,100,200));
buttons[3].setForeground(new Color(255,255,255));
buttons[3].addActionListener(this);
buttons[3].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//7
constraints.gridwidth = 1;
addComponent(buttons[4]);
buttons[4].addActionListener(this);
buttons[4].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//8
constraints.gridwidth = 1;
addComponent(buttons[5]);
buttons[5].addActionListener(this);
buttons[5].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//9
constraints.gridwidth = 1;
addComponent(buttons[6]);
buttons[6].addActionListener(this);
buttons[6].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
///
constraints.gridwidth = 1;
addComponent(buttons[7]);
buttons[7].addActionListener(this);
buttons[7].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//sqrt
constraints.gridwidth = GridBagConstraints.RELATIVE;
addComponent(buttons[8]);
buttons[8].addActionListener(this);
buttons[8].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//MR
constraints.gridwidth = GridBagConstraints.REMAINDER;
addComponent(buttons[9]);
buttons[9].setBackground(new Color(50,100,200));
buttons[9].setForeground(new Color(255,255,255));
buttons[9].addActionListener(this);
buttons[9].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//4
constraints.gridwidth = 1;
addComponent(buttons[10]);
buttons[10].addActionListener(this);
buttons[10].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//5
constraints.gridwidth = 1;
addComponent(buttons[11]);
buttons[11].addActionListener(this);
buttons[11].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//6
constraints.gridwidth = 1;
addComponent(buttons[12]);
buttons[12].addActionListener(this);
buttons[12].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//*
constraints.gridwidth = 1;
addComponent(buttons[13]);
buttons[13].addActionListener(this);
buttons[13].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//%
constraints.gridwidth = GridBagConstraints.RELATIVE;
addComponent(buttons[14]);
buttons[14].addActionListener(this);
buttons[14].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//MC
constraints.gridwidth = GridBagConstraints.REMAINDER;
addComponent(buttons[15]);
buttons[15].setBackground(new Color(50,100,200));
buttons[15].setForeground(new Color(255,255,255));
buttons[15].addActionListener(this);
buttons[15].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//1
constraints.gridwidth = 1;
addComponent(buttons[16]);
buttons[16].addActionListener(this);
buttons[16].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//2
constraints.gridwidth = 1;
addComponent(buttons[17]);
buttons[17].addActionListener(this);
buttons[17].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//3
constraints.gridwidth = 1;
addComponent(buttons[18]);
buttons[18].addActionListener(this);
buttons[18].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//-
constraints.gridwidth = 1;
addComponent(buttons[19]);
buttons[19].addActionListener(this);
buttons[19].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//1/x
constraints.gridwidth = GridBagConstraints.RELATIVE;
addComponent(buttons[20]);
buttons[20].addActionListener(this);
buttons[20].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//M+
constraints.gridwidth = GridBagConstraints.REMAINDER;
addComponent(buttons[21]);
buttons[21].setBackground(new Color(50,100,200));
buttons[21].setForeground(new Color(255,255,255));
buttons[21].addActionListener(this);
buttons[21].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//0
constraints.gridwidth = 1;
addComponent(buttons[22]);
buttons[22].addActionListener(this);
buttons[22].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//+/-
constraints.gridwidth = 1;
addComponent(buttons[23]);
buttons[23].addActionListener(this);
buttons[23].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//point
constraints.gridwidth = 1;
addComponent(buttons[24]);
buttons[24].addActionListener(this);
buttons[24].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//+
constraints.gridwidth = 1;
addComponent(buttons[25]);
buttons[25].addActionListener(this);
buttons[25].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//=
constraints.gridwidth = GridBagConstraints.RELATIVE;
addComponent(buttons[26]);
buttons[26].addActionListener(this);
buttons[26].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
//About
constraints.gridwidth = GridBagConstraints.REMAINDER;
addComponent(buttons[27]);
buttons[27].setBackground(new Color(100,100,200));
buttons[27].setForeground(new Color(255,255,255));
buttons[27].addActionListener(this);
buttons[27].setFont( new Font( "Monospaced", Font.BOLD, 29 ) );
setSize(700,350);
setVisible(true);
}//end constructor
public void actionPerformed(ActionEvent event){
//按键功能
Object click = event.getSource();
String output="";
//数字键和C键
if(click==buttons[ 4 ])
{output+="7";
textField.setText(textField.getText()+output);}
if(click==buttons[ 5 ])
{output+="8";
textField.setText(textField.getText()+output);}
if(click==buttons[ 6 ])
{output+="9";
textField.setText(textField.getText()+output);}
if(click==buttons[ 10 ])
{output+="4";
textField.setText(textField.getText()+output);}
if(click==buttons[ 11 ])
{output+="5";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -