import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JiSuanQi extends JFrame implements ActionListener{
public Mianban1 mianban1;
public Mianban2 mianban2;
public ButtOn buttOn;
public JTextField jTextField0;
public Anniu[] annius;
public JiSuanQi()
{
super("计算器");
this.setBounds(450,100,330,500);
this.setLayout(new GridLayout(9,1));
annius=new Anniu[6];
for(int i=0;i<6;i++)
annius[i]=new Anniu();
buttOn=new ButtOn();
mianban1= new Mianban1();
mianban2=new Mianban2();
jTextField0=new JTextField("");
jTextField0.setBackground(new Color(30,30,30));
jTextField0.setBorder(null);
jTextField0.setFont(new Font("隶书", Font.BOLD, 35));
jTextField0.setForeground(new Color(30,30,30));
this.add(mianban1);
this.add(mianban2);
this.add(jTextField0);
for(int i=0;i<6;i++)
{
for(int j=i*4;j<i*4+4;j++)
annius[i].add(buttOn.jButtons[j]);
}
for(int i=0;i<6;i++)
this.add(annius[i]);
for(int i=0;i<24;i++)
buttOn.jButtons[i].addActionListener(this);
this.setVisible(true);
}
public static void main(String[] args) {
new JiSuanQi();
}
@Override
public void actionPerformed(ActionEvent e) {
try{
if(e.getSource()==this.buttOn.jButtons[8])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"7");
}
if(e.getSource()==this.buttOn.jButtons[9])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"8");
}
if(e.getSource()==this.buttOn.jButtons[10])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"9");
}
if(e.getSource()==this.buttOn.jButtons[12])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"4");
}
if(e.getSource()==this.buttOn.jButtons[13])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"5");
}
if(e.getSource()==this.buttOn.jButtons[14])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"6");
}
if(e.getSource()==this.buttOn.jButtons[16])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"1");
}
if(e.getSource()==this.buttOn.jButtons[17])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"2");
}
if(e.getSource()==this.buttOn.jButtons[18])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"3");
}
if(e.getSource()==this.buttOn.jButtons[21])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+"0");
}
if(e.getSource()==this.buttOn.jButtons[0])
{
String string=this.mianban2.jTextField.getText();
this.mianban1.jTextField.setText(string);
this.jTextField0.setText("0");
this.mianban2.jTextField.setText("");
}
if(e.getSource()==this.buttOn.jButtons[1])
{
String string=this.mianban2.jTextField.getText();
double a =Double.parseDouble(string);
this.mianban2.jTextField.setText(Double.toString(Math.sqrt(a)));
}
if(e.getSource()==this.buttOn.jButtons[2])
{
String string=this.mianban2.jTextField.getText();
double a =Double.parseDouble(string);
this.mianban2.jTextField.setText(Double.toString(a*a));
}
if(e.getSource()==this.buttOn.jButtons[3])
{
String string=this.mianban2.jTextField.getText();
double a =Double.parseDouble(string);
this.mianban2.jTextField.setText(Double.toString(1/a));
}
if(e.getSource()==this.buttOn.jButtons[4])
{
this.mianban2.jTextField.setText("");
}
if(e.getSource()==this.buttOn.jButtons[5])
{
this.mianban1.jTextField.setText("");
this.mianban2.jTextField.setText("");
}
if(e.getSource()==this.buttOn.jButtons[6])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string.substring(0,string.length()-1));
}
if(e.getSource()==this.buttOn.jButtons[7])
{
if((mianban2.jTextField.getText().length()>0)&&(mianban1.jTextField.getText().length()>0))
{
double a=Double.parseDouble(this.mianban1.jTextField.getText());
double b=Double.parseDouble(this.mianban2.jTextField.getText());
if(Integer.parseInt(jTextField0.getText())==19)
{
this.mianban1.jTextField.setText(Double.toString(a+b));
}
if(Integer.parseInt(jTextField0.getText())==15)
{
this.mianban1.jTextField.setText(Double.toString(a-b));
}
if(Integer.parseInt(jTextField0.getText())==11)
{
this.mianban1.jTextField.setText(Double.toString(a*b));
}
if(Integer.parseInt(jTextField0.getText())==7)
{
this.mianban1.jTextField.setText(Double.toString(a/b));
}
if(Integer.parseInt(jTextField0.getText())==0)
{
this.mianban1.jTextField.setText(Double.toString(a%b));
}
jTextField0.setText("7");
this.mianban2.jTextField.setText("");
}
else
{
String string=this.mianban2.jTextField.getText();
this.jTextField0.setText("7");
this.mianban1.jTextField.setText(string);
this.mianban2.jTextField.setText("");
}
}
if(e.getSource()==this.buttOn.jButtons[11])
{
if((mianban2.jTextField.getText().length()>0)&&(mianban1.jTextField.getText().length()>0))
{
double a=Double.parseDouble(this.mianban1.jTextField.getText());
double b=Double.parseDouble(this.mianban2.jTextField.getText());
if(Integer.parseInt(jTextField0.getText())==19)
{
this.mianban1.jTextField.setText(Double.toString(a+b));
}
if(Integer.parseInt(jTextField0.getText())==15)
{
this.mianban1.jTextField.setText(Double.toString(a-b));
}
if(Integer.parseInt(jTextField0.getText())==11)
{
this.mianban1.jTextField.setText(Double.toString(a*b));
}
if(Integer.parseInt(jTextField0.getText())==7)
{
this.mianban1.jTextField.setText(Double.toString(a/b));
}
if(Integer.parseInt(jTextField0.getText())==0)
{
this.mianban1.jTextField.setText(Double.toString(a%b));
}jTextField0.setText("11");
this.mianban2.jTextField.setText("");
}
else
{
String string=this.mianban2.jTextField.getText();
this.jTextField0.setText("11");
this.mianban1.jTextField.setText(string);
this.mianban2.jTextField.setText("");
}
}
if(e.getSource()==this.buttOn.jButtons[15])
{
if((mianban2.jTextField.getText().length()>0)&&(mianban1.jTextField.getText().length()>0))
{
double a=Double.parseDouble(this.mianban1.jTextField.getText());
double b=Double.parseDouble(this.mianban2.jTextField.getText());
if(Integer.parseInt(jTextField0.getText())==19)
{
this.mianban1.jTextField.setText(Double.toString(a+b));
}
if(Integer.parseInt(jTextField0.getText())==15)
{
this.mianban1.jTextField.setText(Double.toString(a-b));
}
if(Integer.parseInt(jTextField0.getText())==11)
{
this.mianban1.jTextField.setText(Double.toString(a*b));
}
if(Integer.parseInt(jTextField0.getText())==7)
{
this.mianban1.jTextField.setText(Double.toString(a/b));
}
if(Integer.parseInt(jTextField0.getText())==0)
{
this.mianban1.jTextField.setText(Double.toString(a%b));
}jTextField0.setText("15");
this.mianban2.jTextField.setText("");
}
else
{
String string=this.mianban2.jTextField.getText();
this.jTextField0.setText("15");
this.mianban1.jTextField.setText(string);
this.mianban2.jTextField.setText("");
}
}
if(e.getSource()==this.buttOn.jButtons[19])
{
if((mianban2.jTextField.getText().length()>0)&&(mianban1.jTextField.getText().length()>0))
{
double a=Double.parseDouble(this.mianban1.jTextField.getText());
double b=Double.parseDouble(this.mianban2.jTextField.getText());
if(Integer.parseInt(jTextField0.getText())==19)
{
this.mianban1.jTextField.setText(Double.toString(a+b));
}
if(Integer.parseInt(jTextField0.getText())==15)
{
this.mianban1.jTextField.setText(Double.toString(a-b));
}
if(Integer.parseInt(jTextField0.getText())==11)
{
this.mianban1.jTextField.setText(Double.toString(a*b));
}
if(Integer.parseInt(jTextField0.getText())==7)
{
this.mianban1.jTextField.setText(Double.toString(a/b));
}
if(Integer.parseInt(jTextField0.getText())==0)
{
this.mianban1.jTextField.setText(Double.toString(a%b));
}jTextField0.setText("19");
this.mianban2.jTextField.setText("");
}
else
{
String string=this.mianban2.jTextField.getText();
this.mianban1.jTextField.setText(string);
this.jTextField0.setText("19");
this.mianban2.jTextField.setText("");
}
}
if(e.getSource()==this.buttOn.jButtons[20])
{
String string=this.mianban2.jTextField.getText();
this.mianban1.jTextField.setText(string);
this.mianban2.jTextField.setText("");
}
if(e.getSource()==this.buttOn.jButtons[23])
{
double a=Double.parseDouble(this.mianban1.jTextField.getText());
double b=Double.parseDouble(this.mianban2.jTextField.getText());
if(Integer.parseInt(jTextField0.getText())==19)
{
this.mianban2.jTextField.setText(Double.toString(a+b));
}
if(Integer.parseInt(jTextField0.getText())==15)
{
this.mianban2.jTextField.setText(Double.toString(a-b));
}
if(Integer.parseInt(jTextField0.getText())==11)
{
this.mianban2.jTextField.setText(Double.toString(a*b));
}
if(Integer.parseInt(jTextField0.getText())==7)
{
this.mianban2.jTextField.setText(Double.toString(a/b));
}
if(Integer.parseInt(jTextField0.getText())==0)
{
this.mianban2.jTextField.setText(Double.toString(a%b));
}
this.mianban1.jTextField.setText("");
}
if(e.getSource()==this.buttOn.jButtons[22])
{
String string=this.mianban2.jTextField.getText();
this.mianban2.jTextField.setText(string+".");
}
}catch(NumberFormatException e1)
{
this.mianban2.jTextField.setText("请输入正确格式");
}
catch(StringIndexOutOfBoundsException e1)
{
this.mianban2.jTextField.setText("不能再减少了");
}
}
public class Mianban1 extends JPanel {
public JTextField jTextField;
public Mianban1()
{ this.setLayout(new GridLayout(1,1));
this.add(jTextField=new JTextField(""));
jTextField.setHorizontalAlignment(JTextField.RIGHT);
jTextField.setBackground(new Color(30,30,30));
jTextField.setBorder(null);
jTextField.setFont(new Font("隶书", Font.BOLD, 20));
jTextField.setForeground(Color.white);
jTextField.setEditable(false);
}
}
public class Mianban2 extends JPanel {
public JTextField jTextField;
public Mianban2()
{ this.setLayout(new GridLayout(1,1));
this.add(jTextField=new JTextField(""));
jTextField.setHorizontalAlignment(JTextField.RIGHT);
jTextField.setBounds(0,0,300,50);
jTextField.setBackground(new Color(30,30,30));
jTextField.setBorder(null);
jTextField.setFont(new Font("隶书", Font.BOLD, 35));
jTextField.setForeground(Color.white);
jTextField.setEditable(false);
}
}
public class ButtOn {
public JButton [] jButtons;
public ButtOn()
{
jButtons=new JButton[24];
jButtons[0]=new JButton("%");
jButtons[1]=new JButton("√");
jButtons[2]=new JButton("X²");
jButtons[3]=new JButton("1/x");
jButtons[4]=new JButton("CE");
jButtons[5]=new JButton("C");
jButtons[6]=new JButton("Del");
jButtons[7]=new JButton("÷");
jButtons[8]=new JButton("7");
jButtons[9]=new JButton("8");
jButtons[10]=new JButton("9");
jButtons[11]=new JButton("*");
jButtons[12]=new JButton("4");
jButtons[13]=new JButton("5");
jButtons[14]=new JButton("6");
jButtons[15]=new JButton("-");
jButtons[16]=new JButton("1");
jButtons[17]=new JButton("2");
jButtons[18]=new JButton("3");
jButtons[19]=new JButton("+");
jButtons[20]=new JButton("±");
jButtons[21]=new JButton("0");
jButtons[22]=new JButton(".");
jButtons[23]=new JButton("=");
for (int i = 0; i <=23; i++) {
jButtons[i].setBackground(new Color(30,30,30));
jButtons[i].setBorder(null);
jButtons[i].setFont(new Font("Mononspace", Font.BOLD, 16));
jButtons[i].setForeground(Color.white);
}
}
}
public class Anniu extends JPanel{
public Anniu()
{
this.setLayout(new GridLayout(1, 4));
}
}
}