main方法
public class main{
public static void main(String []args){
calculator ca = new calculator(200,200,200,250);
}
}
calculate类
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.sun.glass.ui.Clipboard;
public class calculator extends JFrame implements ActionListener {
JMenuBar myJMenuBar;
JMenu menu ,menu2,menu3;
JMenuItem item,item2,item3,
item4,item5,item6;
//上面定义菜单的
String num1;//定义加数,减数。就是第一个运算数
String syb;//定义运算符号,我的思路是匹配这个运算符号,符合哪个用那个运算法则
JTextField inputField;
JButton[] NumButton;//数字键
JButton[] symbol;//符号键
calculator(int width,int length,int x,int y){//画窗体
super("简单计算机");
setLayout(new FlowLayout());
setBounds(width,length,x,y);
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void init() {//加组件
myJMenuBar=new JMenuBar();
menu = new JMenu("编辑");
menu2 = new JMenu("帮助");
menu3 = new JMenu("关于我们");
item = new JMenuItem("清空");
item2 = new JMenuItem("撤销");
item3= new JMenuItem("复制");
item4= new JMenuItem("作者");
item5= new JMenuItem("版本");
item6= new JMenuItem("制作日期");
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
inputField.setText("");
}
});
item3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
calculator.setSystemClipboard(inputField.getText());
}
});
item4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "作者:----", "作者信息", JOptionPane.ERROR_MESSAGE);
}
});
item5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "版本:1.0", "版本信息", JOptionPane.ERROR_MESSAGE);
}
});
item6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null, "制作日期:11.17.2016", "制作信息", JOptionPane.ERROR_MESSAGE);
}
});
menu.add(item);
menu.add(item2);
menu.add(item3);
menu3.add(item4);
menu3.add(item5);
menu3.add(item6);
myJMenuBar.add(menu);
myJMenuBar.add(menu2);
myJMenuBar.add(menu3);
setJMenuBar(myJMenuBar);
//上面都是菜单组件和他们方法的添加
inputField =new JTextField(13);
inputField.setHorizontalAlignment(JTextField.RIGHT);
inputField.setBackground(Color.WHITE);
inputField.setCaretColor(Color.WHITE);
add(inputField);
//显示屏的添加
NumButton = new JButton[10];
int i;
for(i= 0;i<NumButton.length;i++){
String Num =i+"";
NumButton[i]=new JButton(Num);
NumButton[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {//这个方法是为了实现在显示屏追加数字的
String str = inputField.getText();
inputField.setText(str+Num);
}
});
add(NumButton[i]);
}
//数字键的添加
symbol= new JButton[6];
symbol[0]= new JButton("+");
symbol[1]= new JButton("-");
symbol[2]= new JButton("*");
symbol[3]= new JButton("/");
symbol[4]= new JButton("=");
symbol[5]= new JButton("退格");
//符号按钮声明
symbol[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
num1=inputField.getText();//获取第一个运算数
syb ="+";//符号设置为加号
inputField.setText("");//点击了加号按钮后显示屏清空为了输入第二个运算数
symbol[4].addActionListener(this);//给等于号添加事件,让等于号获取第二个数,匹配符号,与第一个数运算
}
});
//下面的方法分别是减法乘法除法
symbol[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
num1=inputField.getText();
syb ="-";
inputField.setText("");
symbol[4].addActionListener(this);
}
});
symbol[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
num1=inputField.getText();
syb ="*";
inputField.setText("");
symbol[4].addActionListener(this);
}
});
symbol[3].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
num1=inputField.getText();
syb ="/";
inputField.setText("");
symbol[4].addActionListener(this);
}
});
symbol[5].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String str = inputField.getText();
String str1 = str.substring(0,str.length()-1);
inputField.setText(str1);
}
});
//这个是清空显示屏的方法
for(i=0;i<symbol.length;i++){
add(symbol[i]);
}
}
//添加符号按钮
public static void setSystemClipboard(String refContent){
String vc = refContent.trim();
StringSelection ss = new StringSelection(vc);
java.awt.datatransfer.Clipboard sysClb = null;
sysClb =Toolkit.getDefaultToolkit().getSystemClipboard();
sysClb.setContents(ss,null);
}
//复制显示屏内容的方法
public void actionPerformed(ActionEvent e) {
if(e.getSource()==symbol[4]){
String num2 = inputField.getText();//得到第二个数
int N1 = Integer.parseInt(num1);
int N2 = Integer.parseInt(num2);
//下面是运算
String Sum=(N1+N2)+"";
String Dvalue=(N1-N2)+"";
String accumulate =(N1*N2)+"";
String discuss=(N1/N2)+"";
//下面是匹配
if(syb.equals("+")){
inputField.setText(Sum);
}
else if(syb.equals("-")){
inputField.setText(Dvalue);
}
else if(syb.equals("*")){
inputField.setText(accumulate);
}
else if(syb.equals("/")){
inputField.setText(discuss);
}
}
}//这个是等于号的方法,分别匹配了加减乘除,并且试图将结果输出到显示屏上,不过这个时候出问题了,结果没出来,显示屏清空了,可是明明没有清空的方法。
}