/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package calculatemac;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
/**
*
* @author USER
*/
public class NewForme extends JFrame {
private JButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b0;
private JButton addButton, minButton, mulButton, dilButton, resultButton;
private JButton pointButton, backspackButton, clearButton, oppButton;
private boolean isFloat = false;
private String ForeScreen = "", BackScreen = "", operateCurrent = "", operatePre = "";
JTextField resultField;
MenuBar mb;
Menu medit;
Menu mcheck;
Menu mhelp;
MenuItem miNew;
MenuItem miPast;
MenuItem mistander;
MenuItem miAboutthis;
public NewForme() {
super("计算器");
mb = new MenuBar();
medit = new Menu("编辑");
mcheck = new Menu("查看");
mhelp = new Menu("帮助");
miNew = new MenuItem("复制");
miPast = new MenuItem("粘贴");
mistander = new MenuItem("标准");
miAboutthis = new MenuItem("关于计算器");
mb.add(medit);
medit.add(miNew);
medit.add(miPast);
mb.add(mcheck);
mcheck.add(mistander);
mb.setHelpMenu(mhelp);
mhelp.add(miAboutthis);
Container c = getContentPane();
c.setLayout(new BorderLayout());
JPanel TopButjp = new JPanel();
TopButjp.setLayout(new GridLayout(1, 3));//顶行安钮
JPanel topPanel = new JPanel();
topPanel.setLayout(new GridLayout(2, 1));
resultField = new JTextField(15);
resultField.setText("0.");
resultField.setHorizontalAlignment(JTextField.RIGHT);//控制光标
resultField.setFont(new Font("TimesRoman",Font.PLAIN,16));
resultField.setForeground(Color.blue);
backspackButton = new JButton("Backspace");
clearButton = new JButton("C");
oppButton = new JButton("+/-");//正负号按钮
TopButjp.add(backspackButton);
TopButjp.add(clearButton);
TopButjp.add(oppButton);
topPanel.add(resultField);
topPanel.add(TopButjp);
JPanel cenButtonPanel = new JPanel();//中间数字键
cenButtonPanel.setLayout(new GridLayout(4, 4));
b1 = new JButton("1");
cenButtonPanel.add(b1);
b2 = new JButton("2");
cenButtonPanel.add(b2);
b3 = new JButton("3");
cenButtonPanel.add(b3);
addButton = new JButton("+");
cenButtonPanel.add(addButton);
b4 = new JButton("4");
cenButtonPanel.add(b4);
b5 = new JButton("5");
cenButtonPanel.add(b5);
b6 = new JButton("6");
cenButtonPanel.add(b6);
minButton = new JButton("-");
cenButtonPanel.add(minButton);
b7 = new JButton("7");
cenButtonPanel.add(b7);
b8 = new JButton("8");
cenButtonPanel.add(b8);
b9 = new JButton("9");
cenButtonPanel.add(b9);
mulButton = new JButton("*");
cenButtonPanel.add(mulButton);
b0 = new JButton("0");
cenButtonPanel.add(b0);
pointButton = new JButton(".");
cenButtonPanel.add(pointButton);
resultButton = new JButton("=");
cenButtonPanel.add(resultButton);
dilButton = new JButton("/");
cenButtonPanel.add(dilButton);
c.add(topPanel, BorderLayout.NORTH);
c.add(cenButtonPanel, BorderLayout.CENTER);
pack();
this.setMenuBar(mb);
this.setBounds(50, 50, 310, 300);
this.setVisible(true);
try{
clearButton.addActionListener(//C
new ActionListener()
{public void actionPerformed(ActionEvent e)
{
resultField.setText("0.");
isFloat = false;
ForeScreen = "";
operatePre = "";
operateCurrent = "";
BackScreen = "";
}
});
b0.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b2.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b1.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b3.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b4.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b5.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b6.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b7.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b8.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
b9.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{
ForeScreen += e.getActionCommand();
resultField.setText(ForeScreen);
}
});
oppButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (Double.parseDouble(ForeScreen) > 0) {
ForeScreen = "-" + ForeScreen;
} else {
int len1 = ForeScreen.length();
ForeScreen = ForeScreen.substring(1, len1);
}
resultField.setText(ForeScreen);
}
}
);
mulButton.addActionListener(//"*"
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
isFloat = false;
if (ForeScreen.equals("*")) {
operatePre = e.getActionCommand();
} else {
operateCurrent = e.getActionCommand();
operate();
System.out.println(operateCurrent);//控制台上提示你所作的操作符号
}
}