java課程設(shè)計(jì)計(jì)算器3科學(xué)計(jì)算器_第1頁
java課程設(shè)計(jì)計(jì)算器3科學(xué)計(jì)算器_第2頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

10/10java課程設(shè)計(jì)計(jì)算器3科學(xué)計(jì)算器importjavax.swing.*;//把javax包里面的swing包里面的所有東西引進(jìn)來

importjava.awt.*;//導(dǎo)入awt包里的所有java類

importjava.awt.event.*;//導(dǎo)入包event

importjava.text.DecimalFormat;//處理文本、日期、數(shù)字和消息的類和接口

importjava.text.SimpleDateFormat;

importjava.util.Calendar;

importjava.util.Date;

importjava.util.GregorianCalendar;

importjava.awt.BasicStroke;

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.Dimension;

importjava.awt.Font;

importjava.awt.Graphics;

importjava.awt.Graphics2D;

importjava.awt.GridLayout;

importjava.awt.Image;

importjava.awt.Toolkit;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.geom.Ellipse2D;

importjava.awt.geom.Line2D;

importjava.awt.geom.Point2D;

publicclassbiaozhunjisuanqiextendsJFrameimplementsActionListener{//public代表該類公有

//class聲明一個(gè)類

//biaozhunjisuanqi為類名

//extends是繼承類

//implements代表實(shí)現(xiàn)接口

//窗體名稱biaozhunjisuanqi繼承JFrame類和ActionListener接口,并實(shí)現(xiàn)publicvoidactionPerformed(ActionEvente){}方法

privatestaticfinallongserialVersionUID=1L;//serialVersionUID相當(dāng)于java類的身份證,默認(rèn)為1L,serialVersionUID作用是序列化時(shí)保持版本的兼容性,即在版本升級(jí)時(shí)反序列化仍保持對(duì)象的唯一性

privateJPaneljContentPane=null;//創(chuàng)建面板對(duì)象,null代表為這些變量賦初值為空,即不分配內(nèi)存空間,變量不指向任何地址。private是訪問控制符,代表這些變量的訪問級(jí)別為私有,私有級(jí)別只能在當(dāng)前類中進(jìn)行訪問,這些(JPanel、JTextArea、JPanel、JButton)是java中AWT(包)中的類,用能進(jìn)行桌面級(jí)應(yīng)用程序的開發(fā),就像平時(shí)用的word,上面有各種文本框,菜單欄,工具欄按鈕等等,這些都是對(duì)象

privateJPaneljPanel=null;//JPanel作為一個(gè)容器,可以包容一些組件,然后將這個(gè)JPanel

對(duì)象作為一個(gè)組件添加到另一個(gè)容器(稱作父容器)中

privateJButtonjButton=null;//9JButton是用戶進(jìn)行計(jì)算時(shí)主要的使用工具,一般為其添加actionPerformed事件。

privateJButtonjButton1=null;//(/)

privateJButtonjButton2=null;//(sqrt)

privateJButtonjButton3=null;//(4)

privateJButtonjButton4=null;//(5)

privateJButtonjButton5=null;//(6)

privateJButtonjButton6=null;//(*)

privateJButtonjButton7=null;//(%)

privateJButtonjButton8=null;//(1)

privateJButtonjButton9=null;//(7)

privateJButtonjButton10=null;//(8)

privateJButtonjButton11=null;//(2)

privateJButtonjButton12=null;//(3)

privateJButtonjButton13=null;//(-)

privateJButtonjButton14=null;//(1/x)

privateJButtonjButton15=null;//(0)

privateJButtonjButton16=null;//(+/-)

privateJButtonjButton17=null;//(.)

privateJButtonjButton18=null;//(+)

privateJButtonjButton19=null;//(=)

privateJTextFieldjTextField=null;//JTextField是一個(gè)的文本框

privateJTextFieldtextMemory=null;//作為輸入M用

privateJButtonjButton20=null;//(MC)

privateJButtonjButton21=null;//(MR)

privateJButtonjButton22=null;//(MS)

privateJButtonjButton23=null;//(M+)

privateJButtonjButton24=null;//(Backspace)

privateJButtonjButton25=null;//(CE)

privateJButtonjButton26=null;//(C)

doublememoryd;//使用內(nèi)存中存儲(chǔ)的數(shù)字

intmemoryi;

//科學(xué)計(jì)算器按鈕

privateJButtonjButton31=null;//(十六進(jìn)制)

privateJButtonjButton32=null;//(sin)

privateJButtonjButton33=null;//(cos)

privateJButtonjButton34=null;//(十進(jìn)制)

privateJButtonjButton35=null;//(tan)

privateJButtonjButton36=null;//(弧度)

privateJButtonjButton37=null;//(八進(jìn)制)

privateJButtonjButton38=null;//(X^2)

privateJButtonjButton39=null;//(X^3)

privateJButtonjButton40=null;//(二進(jìn)制)

privateJButtonjButton41=null;//(X^y)

privateJButtonjButton42=null;//(n!)

privateJButtonjButton43=null;//(Pi)

privateJButtonjButton44=null;//(ln)

privateJButtonjButton45=null;//(log10)

//A-F

privateJButtonjButton46=null;//(A)

privateJButtonjButton47=null;//(B)

privateJButtonjButton48=null;//(C)

privateJButtonjButton49=null;//(D)

privateJButtonjButton50=null;//(E)

privateJButtonjButton51=null;//(F)

privateJPaneljPanel1=null;

privateJPaneljContentPane1=null;

privateStringstr="";//聲明私有字符串變量str

privatedoubledataone;//變量名用來存儲(chǔ)運(yùn)算的數(shù)據(jù)

privatecharOperator='A';//存放運(yùn)算符

privatebooleanpointIsTyped=false;//判斷輸入的數(shù)據(jù)是否是小數(shù)

privateJMenuBarjJMenuBar=null;

privateJMenujMenu=null;//JMenu定義菜單編輯鍵

privateJMenuItemjMenuItem=null;//JMenuItem菜單中項(xiàng)的實(shí)現(xiàn)復(fù)制(Ctrl+C)

privateJMenuItemjMenuItem1=null;//粘貼(Ctrl+V)

privateJMenujMenu1=null;//定義查看菜單

privateJMenuItemjMenuItem3=null;//幫助主題

privateJMenuItemjMenuItem4=null;//關(guān)于計(jì)算器

privateJMenujMenu2=null;//定義幫助菜單

privateJMenuItemjMenuItem5=null;//標(biāo)準(zhǔn)型

privateJMenuItemjMenuItem6=null;//科學(xué)型

privateJMenuItemjMenuItem7=null;//勾股定理

privateJMenuItemjMenuItem8=null;//解一元二次方程

DecimalFormatdf;//保留小數(shù)位數(shù)

privateJButtongetJButton(){//使用privateJButtongetJButton()方法添加按鈕并給按鈕命名

if(jButton==null){

jButton=newJButton();

jButton.setText("9");

jButton.setFont(newFont("楷體",Font.BOLD,30));//使用

jButton.setFont(newFont("楷體",Font.BOLD,30))方法設(shè)置按鈕的字體

jButton.setForeground(newColor(250,0,0));//使用方法設(shè)置按鈕的字體顏色紅色、綠色和藍(lán)色

jButton.setFocusable(false);

jButton.addActionListener(newActionListener(){//相當(dāng)于聲明了一個(gè)實(shí)現(xiàn)了ActionListener接口的對(duì)象..(因?yàn)榭梢钥吹狡渲械姆椒ǘ急恢貙憣?shí)現(xiàn)了.)更多具體細(xì)節(jié),可以參考java匿名類的使用,就是把對(duì)象jButton注冊(cè)給事件監(jiān)聽者newActionListener(){PublicvoidactionPerformed(ActionEventae){}}說明一下newActionListener(){PublicvoidactionPerformed(ActionEvent){}}是一個(gè)匿名內(nèi)部類,用來實(shí)現(xiàn)對(duì)動(dòng)作事件的處理

publicvoidactionPerformed(ActionEvente){//這是ActionListener中定義的方法,事件監(jiān)聽器,當(dāng)定義的事件捕獲以后就會(huì)執(zhí)行這個(gè)方法里面的代碼

str+="9";

jTextField.setText(str);//jTextField是api(ApplicationProgramInterface應(yīng)用程序接口)里面得一個(gè)文本主鍵,要掉用它就要import實(shí)現(xiàn)接口,jtextfield文本框...用來建立文本框的,用戶可以在文本框輸入單行的文本。在JavaSwing中的加“J”字頭的文本輸入框包括兩種,單行文本輸入框(jtextfield)和多行文本輸入框(JTextArea)。

}

});

//單擊后變色

jButton.addMouseListener(newMouseListener(){//設(shè)置數(shù)字按鈕1到9并添加監(jiān)控,使其在發(fā)生鼠標(biāo)事件時(shí)改變按鈕顏色

publicvoidactionPerformed(MouseEvente){//這是MouseListener中定義的方法,java的事件監(jiān)聽器的一個(gè),例如點(diǎn)擊按鈕、文本框里按下回車,就會(huì)調(diào)用這個(gè)里面的方法。

jButton.setForeground(newColor(0,100,0));//Foreground指前背景色}

publicvoidmouseClicked(MouseEvente){//鼠標(biāo)單擊方法(鼠標(biāo)點(diǎn)擊后)

jButton.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){//鼠標(biāo)進(jìn)入組件方法(鼠標(biāo)進(jìn)入某個(gè)區(qū)域后)

jButton.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){//鼠標(biāo)退出組件方法(鼠標(biāo)離開某個(gè)區(qū)域后)

jButton.setForeground(newColor(250,0,0));

}

publicvoidmousePressed(MouseEvente){//鼠標(biāo)按鍵按下后

jButton.setForeground(newColor(0,250,0));

}

publicvoidmouseReleased(MouseEvente){//被按住的鼠標(biāo)按鍵釋放后

jButton.setForeground(newColor(250,250,0));

}

}

);

}

returnjButton;

}

privateJButtongetJButton1(){//注冊(cè)按鈕

if(jButton1==null){

jButton1=newJButton();//實(shí)例化一個(gè)對(duì)象,給按鈕添中符合.

jButton1.setText("/");

jButton1.setFont(newFont("楷體",Font.BOLD,30));

jButton1.setForeground(newColor(0,150,100));

jButton1.addActionListener(newActionListener(){//給jButton1添加一個(gè)事件偵聽器newActionListener(),當(dāng)jButton被按下的時(shí)候,所需要發(fā)生的事情定義在newActionListener()里

publicvoidactionPerformed(ActionEvente){

str=jTextField.getText();

Operator='/';

dataone=Double.parseDouble(str);//表示將轉(zhuǎn)換好的Double類型的數(shù)值賦值給dataone類

str="";

jTextField.setText(str);

}

});

}

returnjButton1;

}

privateJButtongetJButton2(){

if(jButton2==null){

jButton2=newJButton("sqrt");//開根號(hào)運(yùn)算,定義jButton2=new

JButton("sqrt");對(duì)其設(shè)置監(jiān)控,調(diào)用Math.sqrt()方法來實(shí)現(xiàn)開根號(hào)運(yùn)算,并在文本框中輸出結(jié)果jButton2.setFont(newFont("楷體",Font.BOLD,30));//Font字體的意思,楷體,加粗,字體號(hào)大小30

jButton2.setForeground(newColor(0,0,200));

jButton2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

doublea=Double.parseDouble(jTextField.getText());//表示將轉(zhuǎn)換好的Double類型的數(shù)值賦值給double類型的變量。

doubleb;

if(a<0){

jTextField.setText("負(fù)數(shù)不能開平方");

}

else{

b=Math.sqrt(a);

jTextField.setText(Double.toString(b));//Double.toString(next())將這個(gè)數(shù)double

數(shù)轉(zhuǎn)化成String類型(字符串)

}

}

});

}

returnjButton2;

}

privateJButtongetJButton3(){

if(jButton3==null){

jButton3=newJButton();

jButton3.setText("4");

jButton3.setFont(newFont("楷體",Font.BOLD,30));

jButton3.setForeground(newColor(250,0,0));

jButton3.setFocusable(false);

jButton3.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str+="4";

jTextField.setText(str);

}

});

jButton3.addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton3.setForeground(newColor(0,100,0));

}

publicvoidmouseClicked(MouseEvente){

jButton3.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){

jButton3.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){

jButton3.setForeground(newColor(250,0,0));

}

publicvoidmousePressed(MouseEvente){

jButton3.setForeground(newColor(0,250,0));

}

publicvoidmouseReleased(MouseEvente){

jButton3.setForeground(newColor(250,250,0));

}

}

);

}

returnjButton3;

}

privateJButtongetJButton4(){

if(jButton4==null){

jButton4=newJButton();

jButton4.setText("5");

jButton4.setFont(newFont("楷體",Font.BOLD,30));

jButton4.setForeground(newColor(250,0,0));

jButton4.setFocusable(false);

jButton4.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str+="5";

jTextField.setText(str);

}

});

jButton4.addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton4.setForeground(newColor(0,100,0));

}

publicvoidmouseClicked(MouseEvente){

jButton4.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){

jButton4.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){

jButton4.setForeground(newColor(250,0,0));

}

publicvoidmousePressed(MouseEvente){

jButton4.setForeground(newColor(0,250,0));

}

publicvoidmouseReleased(MouseEvente){

jButton4.setForeground(newColor(250,250,0));

}

}

);

}

returnjButton4;

}

privateJButtongetJButton5(){

if(jButton5==null){

jButton5=newJButton();

jButton5.setText("6");

jButton5.setFont(newFont("楷體",Font.BOLD,30));

jButton5.setForeground(newColor(250,0,0));

jButton5.setFocusable(false);

jButton5.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str+="6";

jTextField.setText(str);

}

});

jButton5.addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton5.setForeground(newColor(0,100,0));

}

publicvoidmouseClicked(MouseEvente){

jButton5.setForeground(newColor(0,150,100));

}

publicvoidmouseEntered(MouseEvente){

jButton5.setForeground(newColor(0,0,250));

}

publicvoidmouseExited(MouseEvente){

jButton5.setForeground(newColor(250,0,0));

}

publicvoidmousePressed(MouseEvente){

jButton5.setForeground(newColor(0,250,0));

}

publicvoidmouseReleased(MouseEvente){

jButton5.setForeground(newColor(250,250,0));

}

}

);

}

returnjButton5;

}

privateJButtongetJButton6(){

if(jButton6==null){

jButton6=newJButton();

jButton6.setText("*");

jButton6.setFont(newFont("楷體",Font.BOLD,30));

jButton6.setForeground(newColor(0,150,100));

jButton6.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str=jTextField.getText();

Operator='*';

dataone=Double.parseDouble(str);

str="";

jTextField.setText(str);

}

});

}

returnjButton6;

}

privateJButtongetJButton7(){

if(jButton7==null){

jButton7=newJButton("%");//設(shè)置百分比按鈕,jButton7=newJButton("%");使用變量i1來存放從文本框中讀出的數(shù)據(jù)并轉(zhuǎn)換成double類型,定義double類型變量z1,z1=i1/100實(shí)現(xiàn)求百分比運(yùn)算,在使用jTextField.setText(Double.toString(z1))使其在文本框中輸出結(jié)果jButton7.setFont(newFont("楷體",Font.BOLD,30));

jButton7.setForeground(newColor(0,0,200));

jButton7.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

doublei1=Double.parseDouble(jTextField.getText());

doublez1=i1/100;

jTextField.setText(Double.toString(z1));

}

});

}

returnjButton7;

}

privateJButtongetJButton8(){

if(jButton8==null){

jButton8=newJButton();

jButton8.setText("1");

jButton8.setFont(newFont("楷體",Font.BOLD,30));

jButton8.setForeground(newColor(250,0,0));

jButton8.setFocusable(false);

jButton8.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

str+="1";

jTextField.setText(str);

}

});

jButton8.addMouseListener(newMouseListener(){

publicvoidactionPerformed(MouseEvente){

jButton8.setForeground(newColor(0,100,0));

}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論