| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:我在书上找的一个计算器的小程序为什么能运行结果出不来(求大神们帮忙看下 ...
只看楼主 加入收藏
柒苒
Rank: 2
等 级:论坛游民
帖 子:9
专家分:13
注 册:2012-9-15
结帖率:100%
收藏
 问题点数:0 回复次数:0 
我在书上找的一个计算器的小程序为什么能运行结果出不来(求大神们帮忙看下啊!)
程序代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator
{
    public static void main(String[] args)
    {
    EventQueue.invokeLater(new Runnable()
        {
            public void run()
                {
            CalculatorFrame frame=new CalculatorFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
            }
        });
    }
}

class CalculatorFrame extends JFrame
{
    public CalculatorFrame()
        {
            setTitle("计算器");
            CalculatorPanel panel=new CalculatorPanel();
            add(panel);
            pack();
    }
}
class CalculatorPanel extends JPanel
{
    public CalculatorPanel()
        {
        setLayout(new BorderLayout());

        result=0;
        lastCommand="=";
        start=true;

        display=new JButton("0");
        display.setEnabled(false);
        add(display,BorderLayout.NORTH);
        ActionListener insert=new InsertAction();
        ActionListener command=new CommandAction();

        panel =new JPanel();
        panel.setLayout(new GridLayout(4,4));
        addButton("7",insert);
        addButton("8",insert);
        addButton("9",insert);
        addButton("/",command);
        
        addButton("4",insert);
        addButton("5",insert);
        addButton("6",insert);
        addButton("*",command);

        addButton("1",insert);
        addButton("2",insert);
        addButton("3",insert);
        addButton("-",command);

        addButton("0",insert);
        addButton(".",insert);
        addButton("=",insert);
        addButton("+",insert);
        add(panel,BorderLayout.CENTER);
    }
    private void addButton(String label,ActionListener listener)
        {
        JButton button =new JButton(label);
        button.addActionListener(listener);
        panel.add(button);
    }
    private class InsertAction implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
        String input=event.getActionCommand();
        if(start)
            {
            display.setText("");
            start=false;
        }
        display.setText(display.getText()+input);
    }
}

private class CommandAction implements ActionListener
{
    public void actionPerformed(ActionEvent event)
        {
        String command=event.getActionCommand();
        if(start)
            {
            if(command.equals("-"))
                {
                display.setText(command);
                start=false;
            }
            else lastCommand=command;
        }
        else
            {
            calculate(Double.parseDouble(display.getText()));
            lastCommand=command;
            start=true;
        }
    }
}
public void calculate(double x)
    {
    if(lastCommand.equals("+")) result+=x;
    else if(lastCommand.equals("-")) result-=x;
    else if(lastCommand.equals("*")) result*=x;
    else if(lastCommand.equals("/")) result/=x;
    else if(lastCommand.equals("=")) result=x;
    display.setText(""+result);
}
private JButton display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
}
搜索更多相关主题的帖子: public void import frame 
2012-10-08 09:00
快速回复:我在书上找的一个计算器的小程序为什么能运行结果出不来(求大神们帮忙 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved