我的第一个JAVA计算器

用SWT写了第一个计算器,代码如下

 

package SimpleShell;

import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class simpleShell {
    private double result=0;
    private double num1=0,num2=0;
    private char i=0;
    private boolean clickable = true;
    private boolean isDot = true;
    private Text text;
    private String temp = null;
    private int flag;
   
    simpleShell(){
       
       
       
        Display d = new Display();
        Shell s = new Shell(d, SWT.CLOSE |SWT.MIN  );                    //把最大化给去掉了
        s.setSize(400,500);
        s.setText("计算器");                                               
        s.setImage(new Image(d, "C://eclipse//icons//4.ico"));            //在窗口的右上方加了一个萌萌的图标O(∩_∩)O~ 引用时请去掉  
        s.open();
       
        text = new Text(s,SWT.RIGHT | SWT.BORDER);
        text.setBounds(10, 5, 240, 100);
       
       
        //"0"
        final Button b0 = new Button(s, SWT.PUSH);
        b0.setBounds(10,360,120,60);
        b0.setText("0");
        b0.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+0);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+0);
                 }
            }
        });
       
        //"1"
        final Button b1 = new Button(s, SWT.PUSH);
        b1.setBounds(10,300,60,60);
        b1.setText("1");
        b1.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+1);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+1);
                 }
            }
        });
       
        //"2"
        final Button b2 = new Button(s, SWT.PUSH);
        b2.setBounds(70,300,60,60);
        b2.setText("2");
        b2.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+2);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+2);
                 }
            }
        });
       
        //"3"
        final Button b3 = new Button(s, SWT.PUSH);
        b3.setBounds(130,300,60,60);
        b3.setText("3");
        b3.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+3);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+3);
                 }
            }
        });
       
        //"4"
        final Button b4 = new Button(s, SWT.PUSH);
        b4.setBounds(10,240,60,60);
        b4.setText("4");
        b4.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+4);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+4);
                 }
            }
        });
       
        //"5"
        final Button b5 = new Button(s, SWT.PUSH);
        b5.setBounds(70,240,60,60);
        b5.setText("5");
        b5.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+5);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+5);
                 }
            }
        });
       
        //"6"
        final Button b6 = new Button(s, SWT.PUSH);
        b6.setBounds(130,240,60,60);
        b6.setText("6");
        b6.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+6);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+6);
                 }
            }
        });
       
        //"7"
        final Button b7 = new Button(s, SWT.PUSH);
        b7.setBounds(10,180,60,60);
        b7.setText("7");
        b7.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+7);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+7);
                 }
            }
        });
       
        //"8"
        final Button b8 = new Button(s, SWT.PUSH);
        b8.setBounds(70,180,60,60);
        b8.setText("8");
        b8.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+8);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+8);
                 }
            }
        });
       
        //"9"
        final Button b9 = new Button(s, SWT.PUSH);
        b9.setBounds(130,180,60,60);
        b9.setText("9");
        b9.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(clickable==false){
                    text.setText("");
                    text.setText(text.getText()+9);
                    clickable=true;
                 } 
                else{
                    text.setText(text.getText()+9);
                 }
            }
        });
       
        //"dot"
        final Button bDot = new Button(s, SWT.PUSH);
        bDot.setBounds(130,360,60,60);
        bDot.setText(".");
        bDot.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                if(text.getText()!=""&&isDot==true){
                    text.setText(text.getText()+".");
                    isDot=false;
                 } 
                else{
                    text.setText(text.getText());
                 }
            }
        });
       
       
        //"+"
        final Button bAdd = new Button(s, SWT.PUSH);
        bAdd.setBounds(190,360,60,60);
        bAdd.setText("+");
        bAdd.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                if (text.getText() != ""){
                 num1 = Double.parseDouble(text.getText());
                 temp = "add";
                 clickable = false;
                } 
               }
              });
       
        //"minus"
        final Button bMinus = new Button(s, SWT.PUSH);
        bMinus.setBounds(190,300,60,60);
        bMinus.setText("-");
        bMinus.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                if (text.getText() != ""){
                 num1 = Double.parseDouble(text.getText());
                 temp = "minus";
                 clickable = false;
              
                 //text.setText(text.getText());
                }
             
               }
              });
       
        //"multiply"
        final Button bMultiply = new Button(s, SWT.PUSH);
        bMultiply.setBounds(190,240,60,60);
        bMultiply.setText("*");
        bMultiply.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                if (text.getText() != ""){
                 num1 = Double.parseDouble(text.getText());
                 temp = "mul";
                 clickable = false;
              
                 //text.setText(text.getText());
                }
             
               }
              });
       
        //"devide"
        final Button bDevide = new Button(s, SWT.PUSH);
        bDevide.setBounds(190,180,60,60);
        bDevide.setText("/");
        bDevide.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                if (text.getText() != ""){
                 num1 = Double.parseDouble(text.getText());
                 temp = "div";
                 clickable = false;
              
                 //text.setText(text.getText());
                }
             
               }
              });
       
        //"C"
        final Button bC = new Button(s, SWT.PUSH);
        bC.setBounds(70,120,60,60);
        bC.setText("C");
         bC.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                text.setText("");
                num1 = 0;
                temp = null;
               }
              });
       
        //"AC"
        final Button bAC = new Button(s, SWT.PUSH);
        bAC.setBounds(10,120,60,60);
        bAC.setText("AC");
        bAC.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(final SelectionEvent e){
            text.setText("");
            num1=0;
            num2=0;
            temp=null;
            }
        });
       
        //"UNDO"
        final Button bUndo = new Button(s, SWT.PUSH);
        bUndo.setBounds(130,120,60,60);
        bUndo.setText("←");
        bUndo.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                if (text.getText() != "") {
                         String s = text.getText();
                         text.setText("");
                         for (int i = 0; i < s.length() - 1; i++) {
                           char a = s.charAt(i);
                           text.setText(text.getText() + a);
                         }
                }
               }
              });
       
        //"="
        final Button bEqual = new Button(s, SWT.NONE);
        bEqual.setBounds(190,120,60,60);
        bEqual.setText("=");
        bEqual.addSelectionListener(new SelectionAdapter() {
               public void widgetSelected(final SelectionEvent e) {
                if (temp != null && text.getText() != ""){
                 num2 = Double.parseDouble(text.getText());
                 if (temp == "add"){
                  text.setText(Double.toString((double) (num1 + num2)));
                  temp = null;
                 }else if (temp == "sub"){
                  text.setText(Double.toString((double) (num1 - num2)));
                  temp = null;
                 }else if (temp == "mul"){
                  text.setText(Double.toString((double) (num1 * num2)));
                  temp = null;
                 }else if (temp == "div"){
                  text.setText(Double.toString((double) (num1 / num2)));
                  temp = null;
                 }
                }
               }
              });
       
       
        /*temple
        b1.addSelectionListener(new SelectionAdapter(){
            public void widgetSelected(SelectionEvent e){
                 s.setText(""); 
            }
        });*/
       
/*
        final Text text1 = new Text(s, SWT.SINGLE |SWT.BORDER);
        text1.setBounds(15,10,235,100);
        text1.setEnabled(false);
    */   

       
   
       
       
        s.layout();
        while(!s.isDisposed()){
            if(!d.readAndDispatch())
                d.sleep();
           
        }
    }
    /*public static void main(String [] args){
        simpleShell ss = new simpleShell();
    }*/
}

 

/*另外的一个类,用于启动*/
public class Runner {
    public static void main(String[] args){
        simpleShell ss = new simpleShell();
    }
}

 

      首先,导入SWT就花了我整整一个下午,本打算一点点的从SWT最基本的功能学起,结果在成功的画出窗口以后,就情不自禁的往里面加按钮什么的,于是几本界面就画成了。所以上面代码里类的名字会是simpleShell。。。。。。然后窗口画的有点点大,呵呵,就这样吧~

      然后就是在输入加减乘除的时候会有+setText出现在文本框里的BUG调了我两天,成功后,计算器就成了。

      bug还是有的,但几本功能都有,就写这么多吧,C课设去了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值