游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2006|回复: 3

一个计算器的小程序 谢谢各位高手帮改一下

[复制链接]

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2004-10-5 21:01:00 | 显示全部楼层 |阅读模式
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;

public class Calculator extends JFrame
{
        private JPanel Panel1 = new JPanel();
        private JPanel Panel2 = new JPanel();
        private JTextField tfResult = new JTextField();
        private JButton btn0 = new JButton();
        private JButton btn1 = new JButton();
    private JButton btn2 = new JButton();
    private JButton btn3 = new JButton();
    private JButton btn4 = new JButton();
    private JButton btn5 = new JButton();
    private JButton btn6 = new JButton();
    private JButton btn7 = new JButton();
    private JButton btn8 = new JButton();
    private JButton btn9 = new JButton();
   
    private JButton addBtn = new JButton();
    private JButton subtractBtn = new JButton();
    private JButton multiBtn = new JButton();
    private JButton divBtn = new JButton();
    private JButton equalBtn = new JButton();
    private JButton dotBtn = new JButton();
   
    private GridLayout gridLayout1 = new GridLayout();
    private GridBagLayout gridBagLayout1 = new GridBagLayout();
    private GridBagLayout gridBagLayout2 = new GridBagLayout();
   
   
    private String recentOperation = null;
    private String recentNum = null;
    private boolean isNew = true;
   
    public Calculator()
    {
            try{
                    btn0.setFont(new java.awt.Font("SansSerif",0,12));
                    btn0.setForeground(Color.blue);
                    btn0.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn0.setText("0");
                    btn0.addActionListener(new java.awt.event.ActionListener(){
    public void actionPerformed(ActionEvent e)
                            {
                                    if(tfResult.getText().equals("0")) return;
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"0");
                                    else
                                    tfResult.setText("0");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                    btn1.setFont(new java.awt.Font("SansSerif",0,12));
                    btn1.setForeground(Color.blue);
                    btn1.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn1.setText("1");
                    btn1.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"1");
                                    else
                                    tfResult.setText("1");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn2.setFont(new java.awt.Font("SansSerif",0,12));
                    btn2.setForeground(Color.blue);
                    btn2.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn2.setText("2");
                    btn2.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"2");
                                    else
                                    tfResult.setText("2");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn3.setFont(new java.awt.Font("SansSerif",0,12));
                    btn3.setForeground(Color.blue);
                    btn3.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn3.setText("3");
                    btn3.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"3");
                                    else
                                    tfResult.setText("3");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn4.setFont(new java.awt.Font("SansSerif",0,12));
                    btn4.setForeground(Color.blue);
                    btn4.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn4.setText("4");
                    btn4.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"4");
                                    else
                                    tfResult.setText("4");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn5.setFont(new java.awt.Font("SansSerif",0,12));
                    btn5.setForeground(Color.blue);
                    btn5.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn5.setText("5");
                    btn5.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"5");
                                    else
                                    tfResult.setText("5");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn6.setFont(new java.awt.Font("SansSerif",0,12));
                    btn6.setForeground(Color.blue);
                    btn6.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn6.setText("6");
                    btn6.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"6");
                                    else
                                    tfResult.setText("6");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn7.setFont(new java.awt.Font("SansSerif",0,12));
                    btn7.setForeground(Color.blue);
                    btn7.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn7.setText("7");
                    btn7.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"7");
                                    else
                                    tfResult.setText("7");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                    btn8.setFont(new java.awt.Font("SansSerif",0,12));
                    btn8.setForeground(Color.blue);
                    btn8.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn8.setText("8");
                    btn8.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"8");
                                    else
                                    tfResult.setText("1");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                   
                   
                    btn9.setFont(new java.awt.Font("SansSerif",0,12));
                    btn9.setForeground(Color.blue);
                    btn9.setBorder(BorderFactory.createRaisedBevelBorder());
                    btn9.setText("9");
                    btn9.addActionListener(new java.awt.event.ActionListener(){
                            public void actionPerformed(ActionEvent e)
                            {
                                    if(!isNew)
                                    tfResult.setText(tfResult.getText()+"9");
                                    else
                                    tfResult.setText("9");
                                    isNew = false;
                            }
                           
                    });
                   
                   
                   
                    addBtn.setFont(new java.awt.Font("SansSerif",0,12));
                    addBtn.setForeground(Color.blue);
                    addBtn.setBorder(BorderFactory.createRaisedBevelBorder());
                    addBtn.setText("+");
                    addBtn.addActionListener(new java.awt.event.ActionListener(){
                    public void actionPerformed(ActionEvent e)
                    {
                            if((tfResult.getText()).equals("")) return;
                            if(recentOperation != null) equalaction(e);
                            recentOperation = "add";
                            recentNum = tfResult.getText();
                            isNew = true;
                    }       
                    });
                   
                   
                   
                   
                    subtractBtn.setFont(new java.awt.Font("SansSerif",0,12));
                    subtractBtn.setForeground(Color.blue);
                    subtractBtn.setBorder(BorderFactory.createRaisedBevelBorder());
                    subtractBtn.setText("-");
                    subtractBtn.addActionListener(new java.awt.event.ActionListener(){
                    public void actionPerformed(ActionEvent e)
                    {
                            if((tfResult.getText()).equals("")) return;
                            if(recentOperation != null) equalaction(e);
                            recentOperation = "subtract";
                            recentNum = tfResult.getText();
                            isNew = true;
                    }       
                    });
                   
                   
                   
                   
                    multiBtn.setFont(new java.awt.Font("SansSerif",0,12));
                    multiBtn.setForeground(Color.blue);
                    multiBtn.setBorder(BorderFactory.createRaisedBevelBorder());
                    multiBtn.setToolTipText("");
                    multiBtn.setText("*");
                    multiBtn.addActionListener(new java.awt.event.ActionListener(){
                    public void actionPerformed(ActionEvent e)
                    {
                            if((tfResult.getText()).equals("")) return;
                            if(recentOperation != null) equalaction(e);
                            recentOperation = "multiply";
                            recentNum = tfResult.getText();
                            isNew = true;
                    }       
                    });
                   
                   
                   
                   
                   
                 divBtn.setFont(new java.awt.Font("SansSerif",0,12));
                    divBtn.setForeground(Color.blue);
                divBtn.setBorder(BorderFactory.createRaisedBevelBorder());
                    divBtn.setText("/");
                    divBtn.addActionListener(new java.awt.event.ActionListener(){
                    public void actionPerformed(ActionEvent e)
                    {
                            if((tfResult.getText()).equals("")) return;
                            if(recentOperation != null) equalaction(e);
                            recentOperation = "divide";
                            recentNum = tfResult.getText();
                            isNew = true;
                    }       
                    });
                   
                   
                   
                   
                    equalBtn.setFont(new java.awt.Font("SansSerif",0,12));
                    equalBtn.setForeground(Color.blue);
                equalBtn.setBorder(BorderFactory.createRaisedBevelBorder());
                    equalBtn.setText("=");
                    equalBtn.addActionListener(new java.awt.event.ActionListener(){
                    public void actionPerformed(ActionEvent e)
                    {
                            equalaction(e);
                    }
           
                    });
                   
                   
                   
                    dotBtn.setFont(new java.awt.Font("SansSerif",0,12));
                    dotBtn.setForeground(Color.blue);
                dotBtn.setBorder(BorderFactory.createRaisedBevelBorder());
                    dotBtn.setText(".");
                    dotBtn.addActionListener(new java.awt.event.ActionListener(){
                    public void actionPerformed(ActionEvent e)
                    {
                            if(tfResult.getText().indexOf(".")!= -1) return;
                            if(!isNew && tfResult.getText()!="")
                     tfResult.setText(tfResult.getText()+".");
                     else
                     tfResult.setText("0.");
                     isNew = false;
                }
           
                    });
                   
                   
                    tfResult.setBorder(BorderFactory.createLoweredBevelBorder());
                    tfResult.setDisabledTextColor(Color.white);
                    tfResult.setEditable(false);
                    tfResult.setText("0");
                    tfResult.setHorizontalAlignment(SwingConstants.RIGHT);
                   
                    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    Panel1.setLayout(gridBagLayout1);
                    Panel1.setPreferredSize(new Dimension(333,30));
                    Panel1.add(tfResult,new GridBagConstraints(1,0,1,1,0.0,0.0,
                    GridBagConstraints.CENTER,GridBagConstraints.NONE,
                    new java.awt.Insets(0,15,0,0),155,0));
                   
                   
                    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                   
                    Panel2.setBorder(BorderFactory.createRaisedBevelBorder());
                    gridLayout1.setColumns(6);
                    gridLayout1.setHgap(2);
                    gridLayout1.setRows(4);
                    gridLayout1.setVgap(2);
                    Panel2.setLayout(gridLayout1);
                    Panel2.add(btn7,null);
                    Panel2.add(btn8,null);
                    Panel2.add(btn9,null);
                    Panel2.add(addBtn,null);
                    Panel2.add(btn4,null);
                    Panel2.add(btn5,null);
                    Panel2.add(btn6,null);
                    Panel2.add(subtractBtn,null);
                    Panel2.add(btn1,null);
                    Panel2.add(btn2,null);
                    Panel2.add(btn3,null);
                    Panel2.add(multiBtn,null);
                    Panel2.add(btn0,null);
                    Panel2.add(dotBtn,null);
                    Panel2.add(equalBtn,null);
                    Panel2.add(divBtn,null);
                           
                   
                   
                    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                   
                    this.getContentPane().setLayout(gridBagLayout2);
                    this.getContentPane().add(Panel2,
                    new GridBagConstraints(0,1,1,1,1,0,1,0,
                    GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,
                    new java.awt.Insets(1,0,1,4),190,15));                  
                      this.getContentPane().add(Panel1,
                      new GridBagConstraints(0,1,1,1,1,0,1,0,
                    GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,
                    new java.awt.Insets(1,0,1,4),23,0));
                   
                   
                    this.setResizable(false);
                    this.setTitle("Calculator");
                    this.addWindowListener(new java.awt.event.WindowAdapter(){
                            public void windowClosing(WindowEvent e)
                            {
                                    System.exit(0);
                                   
                            }
                           
                    });
                   
            }catch(Exception e)
            {
                    e.printStackTrace();
            }
    }



public static void main(String[] args)
{
/*        public class Calculator{
                this.Calculator = new Calculator
                }*/
       
        Calculator mf = new Calculator();
        mf.setBounds(300,200,240,172);
        mf.show();
        }

void equalaction(ActionEvent e)
{
        if(recentOperation == null || recentNum == null ||
           tfResult.getText().equals("")) return;
     double last = 0, now = 0;
     try
     {
             last = Double.parseDouble(recentNum);
             now = Double.parseDouble(tfResult.getText());
     }catch(NumberFormatException ne)
     {
             recentOperation = null;
             recentNum = null;
             tfResult.setText("Datainput was illegal! ");
             System.out.println("datainput was illegal!");
             isNew = true;
             return;
            
     }
     if(recentOperation.equals("add"))
     {
             int r = (int) (last + now);
     if(r == last + now)
     tfResult.setText(""+r);
     else
     tfResult.setText(""+(last + now));
     }
     if(recentOperation.equals("subtract"))
     {
             int r = (int) (last-now);
             if(r == last-now)
             tfResult.setText(""+ r);
             else
             tfResult.setText(""+(last-now));
     }
     
     if(recentOperation.equals("multiply"))
     {
             int r = (int) (last * now);
             if(r ==last * now)
             tfResult.setText(""+ r);
             else
             tfResult.setText("" +(last * now));
            
     }
     if(recentOperation.equals("divide"))
     {
             int r = (int) (last/now);
             if(r == last/now)
             tfResult.setText("" + r);
             else
             tfResult.setText("" + (last/now));
            
     }
     
     recentNum = tfResult.getText();
     recentOperation = null;
     isNew = true;
     }
     
       }  

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2004-10-5 21:08:00 | 显示全部楼层

出错信息如下

D:\myfile\java\awt\Calculator\Calculator.java:386: cannot resolve symbol
symbol  : constructor GridBagConstraints (int,int,int,int,int,int,int,int,int,int,java.awt.Insets,int,int)
location: class java.awt.GridBagConstraints
                new GridBagConstraints(0,1,1,1,1,0,1,0,
                ^

42

主题

202

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
QQ
发表于 2004-10-5 22:58:00 | 显示全部楼层

Re: 出错信息如下

林西: 出错信息如下

D:\myfile\java\awt\Calculator\Calculator.java:386: cannot resolve symbol
symbol  : constructor Grid...

GridBagConstraints的构造器一共11个参数,而你写了13个。
正确的应该是下面的形式:

this.getContentPane().add(Panel2,
                                new GridBagConstraints(0, 1, 1, 1, 1, 0,
          GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
          new java.awt.Insets(1, 0, 1, 4), 190, 15));
      this.getContentPane().add(Panel1,
                                new GridBagConstraints(0, 0, 1, 1, 1, 0,
          GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
          new java.awt.Insets(1, 0, 1, 4), 23, 0));

我修改之后编译运行通过。

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2004-10-11 23:46:00 | 显示全部楼层

Re:一个计算器的小程序 谢谢各位高手帮改一下

谢谢你啦   以后多多指教
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-22 17:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表