lack);
addButton(panel2, "/", new Signs(), Color.red);
addButton(panel2, "cos", new Signs(), Color.green);
addButton(panel2, "x^3", new Signs(), Color.green);
addButton(panel2, "-/+", new Clear(), Color.orange);
addButton(panel2, "0", numActionListener, Color.black);
addButton(panel2, ".", new Dot(), Color.orange);
addButton(panel2, "*", new Signs(), Color.red);
addButton(panel2, "tan", new Signs(), Color.green);
addButton(panel2, "%", new Signs(), Color.green);
addButton(panel2, "π", numActionListener, Color.blue);
addButton(panel2, "e", numActionListener, Color.blue);
addButton(panel2, "'", new Signs(), Color.blue);
addButton(panel2, "=", new Signs(), Color.red);
btns = new JButton("存储地");
btns.setBorder(BorderFactory.createLoweredBevelBorder());
btns.setEnabled(false);//按钮不可操作
btns.setPreferredSize(new Dimension(20, 20));
btns.addKeyListener(new MyKey());
panel3.add(btns);//加入按钮
panel3.addKeyListener(new MyKey());
addButton(panel3, "MC", new SM(), Color.pink);
addButton(panel3, "MR", new SM(), Color.pink);
addButton(panel3, "MS", new SM(), Color.pink);
addButton(panel3, "M+", new SM(), Color.pink);
panel4.add(panel1, BorderLayout.NORTH);
panel4.add(panel2, BorderLayout.CENTER);
panel4.addKeyListener(new MyKey());
addKeyListener(new MyKey());
add(tf, Bor
derLayout.NORTH);
add(panel3, BorderLayout.WEST);
add(panel4);
pack();
this.setResizable(true);//窗口可改变大小
this.setLocation(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* 统一设置按钮的的使用方式
* @param panel
* @param name
* @param action
* @param color
*/
private void addButton(JPanel panel, String name, ActionListener action, Color color){
JButton bt = new JButton(name);
panel.add(bt);//在面板上增加按钮
bt.setForeground(color);//设置前景(字体)颜色
bt.addActionListener(action);//增加监听事件
bt.addKeyListener(new MyKey());
}
/**
* 计算器的基础操作(+ - ?á ??)
* @param x
*/
private void getResult (double x){
if(oper == "+"){result += x;}
else if(oper == "-"){result -= x;}
else if(oper == "*"){result *= x;}