import?java.awt.Color;
import?java.awt.Font;
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JMenu;
import?javax.swing.JMenuBar;
import?javax.swing.JMenuItem;
import?javax.swing.JPanel;
import?javax.swing.JTextField;
/**
*?計算器 *?@author?LiuLei */public?class?Test1?{
public?static?void?main(String[]?args)?{
@SuppressWarnings("unused")
caclWindows?abc=new?caclWindows();
}
}
class?caclWindows?extends?JFrame?implements?ActionListener{
private?static?final?long?serialVersionUID?=?3412857642504559981L;
public?caclWindows(){
//窗口設置
this.setTitle("計算器");
this.setSize(280,?270);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.zujian();
this.setVisible(true);
}
//上下面板
private?JPanel?topJP;
private?JPanel?bottomJP;
//菜單欄
private?JMenuBar?cacluMenu;
//菜單
private?JMenu?seeJM;
private?JMenu?editJM;
private?JMenu?helpJM;
//菜單項
private?JMenuItem?bianJMI;
private?JMenuItem?keXueJMI;
private?JMenuItem?programJMI;
private?JMenuItem?infoJMI;
private?JMenuItem?historyJMI;
private?JMenuItem?shuJMI;
private?JMenuItem?copyJMI;
private?JMenuItem?zhanTieJMI;
private?JMenuItem?writeJMI;
private?JMenuItem?helpJMI;
private?JMenuItem?aboutJMI;
private?JMenuItem?aboutJMI2;
//文本框
private?JTextField?windowJTF;
//按鈕
private?JButton?shuzi;
public?void?zujian(){
//實列化
topJP=new?JPanel();
topJP.setLayout(new?GridLayout(1,?3));
bottomJP=new?JPanel();
bottomJP.setLayout(new?GridLayout(4,5,6,8));
cacluMenu=new?JMenuBar();
windowJTF=new?JTextField();
windowJTF.setFont(new?Font("楷體",Font.BOLD,28));
windowJTF.setForeground(Color.RED);
windowJTF.setHorizontalAlignment(JTextField.RIGHT);
seeJM=new?JMenu("查看(V)");
editJM=new?JMenu("編輯(E)");
helpJM=new?JMenu("幫助(H)");
bianJMI=new?JMenuItem("標準型");
keXueJMI=new?JMenuItem("科學型");
programJMI=new?JMenuItem("程序員");
infoJMI=new?JMenuItem("統計信息");
historyJMI=new?JMenuItem("歷史記錄");
shuJMI=new?JMenuItem("數字分組");
copyJMI=new?JMenuItem("復制");
zhanTieJMI=new?JMenuItem("粘貼");
writeJMI=new?JMenuItem("歷史記錄");
helpJMI=new?JMenuItem("查看幫助");
aboutJMI=new?JMenuItem("關於計算器");
aboutJMI2=new?JMenuItem("liulei");
//將菜單放入菜單條
cacluMenu.add(seeJM);
cacluMenu.add(editJM);
cacluMenu.add(helpJM);
seeJM.add(bianJMI);
seeJM.add(keXueJMI);
seeJM.add(programJMI);
seeJM.add(infoJMI);
seeJM.add(historyJMI);
seeJM.add(shuJMI);
editJM.add(copyJMI);
editJM.add(zhanTieJMI);
editJM.add(writeJMI);
helpJM.add(helpJMI);
helpJM.add(aboutJMI);
helpJM.add(aboutJMI2);
//添加數字到按鈕
for(int?i=0;i<=9;i++){
shuzi=new?JButton(i+"");
bottomJP.add(shuzi);
shuzi.addActionListener(this);
}
//添加運算符到按鈕
String?yunS[]=new?String[]{"+","-","x","/","清零","="};
for(int?a=0;a<6;a++){
shuzi=new?JButton(yunS[a]);
bottomJP.add(shuzi);
shuzi.addActionListener(this);
}
topJP.add(windowJTF);
//添加組件到窗口
this.add(cacluMenu,BorderLayout.NORTH);
this.add(topJP,BorderLayout.CENTER);
this.add(bottomJP,BorderLayout.SOUTH);
}
static?String?suanF="";
int?engShu;
static?int?yi;
static?int?er;
//保存輸出結果
String?print;
@Override
public?void?actionPerformed(ActionEvent?e)?{
//i(主要測試語句)
String?butShu=((JButton)e.getSource()).getText();
//從按鈕監聽運算數
if(butShu.equals("+")||butShu.equals("-")||butShu.equals("x")||butShu.equals("/")||butShu.equals("清零")||butShu.equals("=")){
String?suanFu=butShu;
//將監聽到的運算符的值賦給成員變量suanF
suanF=suanFu;
//將監聽到的數2賦給成員變量er保存
er=yi;
//顯示運算數2
windowJTF.setText(er+"");
//顯示運算符
windowJTF.setText(suanF+"");
//清零操作
if(butShu.equals("清零")){
yi=0;
er=0;
engShu=0;
windowJTF.setText(null);
}
if(butShu.equals("=")){
windowJTF.setText(null);
windowJTF.setText(print);
yi=engShu;
}
//iSystem.out.println(print);
}
//從按鈕監聽計算符
if(!butShu.equals("+")&&!butShu.equals("-")&&!butShu.equals("x")&&!butShu.equals("/")&&!butShu.equals("清零")&&!butShu.equals("=")){
//顯示之前先把原來的數字拼接上就行了
//int?shu=Integer.parseInt(butShu);
int?shu=Integer.parseInt(windowJTF.getText()+butShu);
yi=shu;
//System.out.println(l);
//將監聽到的數1賦給成員變量yi保存
//顯示運算數1
windowJTF.setText(yi+"");
//根據運算符進行相應計算
if(suanF.equals("+")){
engShu=yi+er;
//System.out.println("結果加法"+engShu);
}else?if(suanF.equals("-")){
engShu=er-yi;
//System.out.println("結果減法?"+engShu);
//windowJTF.setText(er+"-"+yi+"="+engShu+"");
}else?if(suanF.equals("x")){
engShu=yi*er;
//iSystem.out.println("結果乘法"+engShu);
//windowJTF.setText(er+"x"+yi+"="+engShu+"");
}else?if(suanF.equals("/")){
if(yi!=0&&er!=0){
engShu=er/yi;
}else?if(er==0){
windowJTF.setText("除數不能為0!");
}
//iSystem.out.println("結果除法?"+engShu);
//windowJTF.setText(er+"/"+yi+"="+engShu+"");
}
if(er!=0){
//windowJTF.setText(er+suanF+yi+"="+engShu+"");
print=er+suanF+yi+"="+engShu+"";
//顯示後將結果值賦給第壹個計算數,以便參與二次運算
yi=engShu;
}
//測試顯示結果
//iSystem.out.println("1:"+engShu);
//當判斷有數參與運算後輸出結果
//iSystem.out.println("i"+shu);
}
//iSystem.out.println("測試:"+suanF+","+suanShu);
}
}
看了妳的代碼,稍微改壹下就可以了,幫妳加了註釋,不過其他還有問題,自己在調整下就好了