⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculatortest.java

📁 编程之道--java程序设计入门源代码
💻 JAVA
字号:
/**
 * 网格布局的测试
 */

import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JTextField;

public class CalculatorTest
{
    public static void main(String[] args)
    {  
        CalculatorFrame frame = new CalculatorFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.show();
    }
}

class CalculatorFrame extends JFrame
{
    private static final int WIDTH = 300;
    private static final int HEIGHT = 200;  
    
    public CalculatorFrame()
    {
        setTitle("网格布局测试");
        setSize(WIDTH, HEIGHT);
        
        Container contentPane = getContentPane();
        CalculatorPanel panel = new CalculatorPanel();
        contentPane.add(panel);
    }
}

class CalculatorPanel extends JPanel
{  
    private JTextField display;
    private JPanel panel;
    private double result;
    private String lastCommand;
    private boolean start;
    
    public CalculatorPanel()
    {  
        setLayout(new BorderLayout());
        
        result = 0;
        lastCommand = "=";
        start = true;
        
        // add the display
        
        display = new JTextField("0");
        display.setEditable(false);
        add(display, BorderLayout.NORTH);
        
        ActionListener insert = new InsertAction();
        ActionListener command = new CommandAction();
        
        // add the buttons in a 4 x 4 grid
        
        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("=", command);
        addButton("+", command);
        
        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 evt)
        {  
            String command = evt.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);
    }   
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -