您的位置:首页 > 编程语言 > Java开发

java简单计算器实现,只有四则运算

2016-11-29 07:56 525 查看
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

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;
JTextField inputField;
JButton[] NumButton;//数字键
JButton[] symbol;//符号键
//定义数据变量
int sum;
String fuhao,sum1="1",sum2="0";
//画窗体
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("关于我们");
//menu子菜单
item = new JMenuItem("清空");
item2 = new JMenuItem("撤销");
item3= new JMenuItem("复制");
//menu3子菜单
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].addMouseListener(new MouseAdapter() {
private int clickCount=1,count=0;
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到加法按钮"+count++);
}

public void mouseClicked(MouseEvent e){
fuhao="+";
System.out.println("点击"+clickCount+",加法"+fuhao);
System.out.println("点击动作"+clickCount++);
if(clickCount%2 == 0){
sum1=inputField.getText();
System.out.println("the first num ="+sum1);
inputField.setText("");
}else{
sum2=inputField.getText();
System.out.println("the second num ="+sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 +s2;
inputField.setText(sum+"");
System.out.println("sum="+sum);
}
}

});

symbol[1].addMouseListener(new MouseAdapter() {
private int clickCount=1,count=0;
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到减法按钮"+count++);
}

public void mouseClicked(MouseEvent e){
fuhao="-";
System.out.println("点击"+clickCount+",减法"+fuhao);
System.out.println("点击动作"+clickCount++);
if(clickCount%2 == 0){
sum1=inputField.getText();
System.out.println(sum1);
inputField.setText("");
}else{
sum2=inputField.getText();
System.out.println(sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 -s2;
inputField.setText(sum+"");
}
System.out.println(sum);
}

});

symbol[2].addMouseListener(new MouseAdapter() {
private int clickCount=1,count=0;
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到乘法按钮"+count++);
}

public void mouseClicked(MouseEvent e){
fuhao="*";
System.out.println("点击"+clickCount+",乘法"+fuhao);
System.out.println("点击动作"+clickCount++);
if(clickCount%2 == 0){
sum1=inputField.getText();
System.out.println(sum1);
inputField.setText("");
}else{
sum2=inputField.getText();
System.out.println(sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 *s2;
inputField.setText(sum+"");
}
System.out.println(sum);
}

});

symbol[3].addMouseListener(new MouseAdapter() {
private int clickCount=1,count=0;
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到除法按钮"+count++);
}

public void mouseClicked(MouseEvent e){
fuhao="/";
System.out.println("点击"+clickCount+",除法"+fuhao);
System.out.println("点击动作"+clickCount++);
if(clickCount%2 == 0){
sum1=inputField.getText();
System.out.println(sum1);
inputField.setText("");
}else{
sum2=inputField.getText();
System.out.println(sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 /s2;
inputField.setText(sum+"");
}
System.out.println(sum);
}

});

symbol[4].addActionListener(this);
symbol[5].addMouseListener(new MouseAdapter() {
private int count=0;
public void mouseEntered(MouseEvent e){
System.out.println("鼠标进入到退格按钮"+count++);
}

public void mouseClicked(MouseEvent e){
String str = inputField.getText();
String strend = str.substring(0,str.length()-1);
inputField.setText(strend);
}

});
//添加符号按钮
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(fuhao.equals("+")){
System.out.println("符号是:"+fuhao);
sum2=inputField.getText();
System.out.println("the second num ="+sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 +s2;
inputField.setText(sum+"");
System.out.println("sum="+sum);
}
if(fuhao.equals("-")){
sum2=inputField.getText();
System.out.println("the second num ="+sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 -s2;
inputField.setText(sum+"");
System.out.println("sum="+sum);
}
if(fuhao.equals("*")){
sum2=inputField.getText();
System.out.println("the second num ="+sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 *s2;
inputField.setText(sum+"");
System.out.println("sum="+sum);
}
if(fuhao.equals("/")){
sum2=inputField.getText();
System.out.println("the second num ="+sum2);
inputField.setText("");
int s1 =Integer.parseInt(sum1.trim());
int s2 =Integer.parseInt(sum2.trim());
System.out.println(s1);
System.out.println(s2);
int sum = s1 /s2;
inputField.setText(sum+"");
System.out.println("sum="+sum);
}
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java swing 事件监听