當前位置:編程學習大全網 - 源碼下載 - 求大神指導下java簡單計算器

求大神指導下java簡單計算器

import?java.awt.BorderLayout;

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);

}

}

看了妳的代碼,稍微改壹下就可以了,幫妳加了註釋,不過其他還有問題,自己在調整下就好了

  • 上一篇:C語言怎麽學?
  • 下一篇:模型顯示源代碼
  • copyright 2024編程學習大全網