import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements
ActionListener
{
JFrame frame;
private JButton[] buttons,operations;
private String[]
bu={"0","1","2","3","4","5","6","7","8","9"};
private String[]
op={"+","-","*","/","=",".","sqrt","+/-","backspace","ce","c","sin","1/x"};
private TextField kongbai=new TextField();
//K1
JMenuBar
mainMenu;
JMenuItem
copy,paste,exit,about,me;
Container
con;
JTextField
text;
String
copycontent="";
boolean
clickable=true,clear=true;
int
all=0;
double qian;
//当前所到的数字
String
fuhao;// 当前得到的符号
int
first=1;
public Calculator()
{
super("Java计算器——刘超陈哲制作");
setSize(400,300);
setLocation(250,200);
JLabel label=new JLabel("result:");
text=new JTextField(30);
text.setEnabled(false);
text.setText("0.");
text.setHorizontalAlignment(JTextField.RIGHT);//从右到左
JPanel con1=new
JPanel();
JPanel con2=new JPanel();
JPanel con3=new JPanel();
con=getContentPane();
con.add(con1,"North");
con.add(con2,"Center");
con.add(con3,"South");
con1.setLayout(new
FlowLayout(FlowLayout.LEFT));
con2.setLayout(new GridLayout(4,5,1,1));
//四行、五列
con3.setLayout(new
GridLayout(1,3,1,1));
buttons=new
JButton[10];
for (int
i=0;i<10 ;i++ )
{
buttons[i]=new
JButton(bu[i]);
buttons[i].addActionListener(this);
}
operations=new
JButton[13];
for (int
j=0;j<13 ;j++ )
{
operations[j]=new
JButton(op[j]);
operations[j].addActionListener(this);
}
operations[0].setForeground(Color.red);
operations[1].setForeground(Color.red);
operations[2].setForeground(Color.red);
operations[3].setForeground(Color.red);
operations[4].setForeground(Color.red);
operations[8].setForeground(Color.red);
operations[9].setForeground(Color.red);
operations[10].setForeground(Color.red);
operations[6].setForeground(Color.blue);
operations[11].setForeground(Color.blue);
operations[12].setForeground(Color.blue);
JTextField t3=new JTextField(30);
con1.add(label);
con1.add(text);
text.setEditable(true);//好像可有可无,不起作用
text.setBackground(new Color(255, 255, 255));
con2.add(buttons[7]);
con2.add(buttons[8]);
con2.add(buttons[9]);
con2.add(operations[3]);
con2.add(operations[6]);
con2.add(buttons[4]);
con2.add(buttons[5]);
con2.add(buttons[6]);
con2.add(operations[2]);
con2.add(operations[12]);
con2.add(buttons[1]);
con2.add(buttons[2]);
con2.add(buttons[3]);
con2.add(operations[1]);
con2.add(operations[11]);
con2.add(buttons[0]);
con2.add(operations[5]);
con2.add(operations[7]);
con2.add(operations[0]);
con2.add(operations[4]);
kongbai.setEnabled(false);
con3.add(kongbai);
con3.add(operations[8]);
con3.add(operations[9]);
con3.add(operations[10]);
mainMenu = new JMenuBar();
setJMenuBar(mainMenu);
JMenu editMenu = new JMenu("编辑");
JMenu helpMenu = new JMenu("帮助");
mainMenu.add(editMenu);
mainMenu.add(helpMenu);
copy = new JMenuItem(" 复制");
paste = new JMenuItem(" 粘贴");
exit=new JMenuItem("退出");
KeyStroke
copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键
KeyStroke
pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键
editMenu.add(copy);
editMenu.add(paste);
editMenu.add(exit);
copy.addActionListener(this);
paste.addActionListener(this);
exit.addActionListener(this);
about = new JMenuItem(" 关于计算器");
me = new JMenuItem(" 作者主页");
helpMenu.add(about);
helpMenu.add(me);
about.addActionListener(this);
me.addActionListener(this);
addWindowListener(new WindowDestroyer());//结束窗口
}
public void actionPerformed(ActionEvent
e)//设置按钮的动作
{
if(first==1)
text.setText("");
first=0;//第一次把文本框0.清空
Object temp = e.getSource();
String
str=text.getText();
if(temp==copy) //设置copy的动作
{
copycontent = text.getText();
}
if(temp==paste) //设置paste的动作
{
text.setText(text.getText()+copycontent);
}
if (temp==exit)//设置exit的动作
{
System.exit(0);
}
if(temp==about)//设置about的动作
{
JOptionPane.showMessageDialog(frame,"
Java计算器\n刘超(学号:320070925181)\n陈哲(学号:320070924821)\n
07信息安全班\n
兰州大学\n
信息科学与工程学院","关于计算器",JOptionPane.INFORMATION_MESSAGE); ;
}
if(temp==me)//设置me动作
{