Popup Calculator (弹出计算器)

这篇博客介绍如何利用编程中的import导入模块和class定义类,来构建一个功能丰富的弹出计算器。内容涵盖按钮交互逻辑及计算器的界面设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

import  java.awt.BorderLayout;
import  java.awt.Button;
import  java.awt.Container;
import  java.awt.GridLayout;
import  java.awt.event.ActionEvent;
import  java.awt.event.ActionListener;

import  javax.swing.JApplet;
import  javax.swing.JButton;
import  javax.swing.JFrame;
import  javax.swing.JPanel;
import  javax.swing.JTextField;

public   class  PopupCalculatorApplet  extends  JApplet  implements  ActionListener  {
  
public void init() {
    Button calcButton 
= new Button("Calculator");
    calcButton.addActionListener(
this);
    Container contentPane 
= getContentPane();
    contentPane.add(calcButton);
  }


  
public void actionPerformed(ActionEvent evt) {
    
if (calc.isVisible())
      calc.setVisible(
false);
    
else
      calc.show();
  }


  
private JFrame calc = new CalculatorFrame();
}


class  CalculatorPanel  extends  JPanel  implements  ActionListener  {
  
public CalculatorPanel() {
    setLayout(
new BorderLayout());

    display 
= new JTextField("0");
    display.setEditable(
false);
    add(display, 
"North");

    JPanel p 
= new JPanel();
    p.setLayout(
new GridLayout(44));
    String buttons 
= "789/456*123-0.=+";
    
for (int i = 0; i < buttons.length(); i++)
      addButton(p, buttons.substring(i, i 
+ 1));
    add(p, 
"Center");
  }


  
private void addButton(Container c, String s) {
    JButton b 
= new JButton(s);
    c.add(b);
    b.addActionListener(
this);
  }


  
public void actionPerformed(ActionEvent evt) {
    String s 
= evt.getActionCommand();
    
if ('0' <= s.charAt(0&& s.charAt(0<= '9' || s.equals(".")) {
      
if (start)
        display.setText(s);
      
else
        display.setText(display.getText() 
+ s);
      start 
= false;
    }
 else {
      
if (start) {
        
if (s.equals("-")) {
          display.setText(s);
          start 
= false;
        }
 else
          op 
= s;
      }
 else {
        calculate(Double.parseDouble(display.getText()));
        op 
= s;
        start 
= true;
      }

    }

  }


  
public void calculate(double n) {
    
if (op.equals("+"))
      arg 
+= n;
    
else if (op.equals("-"))
      arg 
-= n;
    
else if (op.equals("*"))
      arg 
*= n;
    
else if (op.equals("/"))
      arg 
/= n;
    
else if (op.equals("="))
      arg 
= n;
    display.setText(
"" + arg);
  }


  
private JTextField display;

  
private double arg = 0;

  
private String op = "=";

  
private boolean start = true;
}


class  CalculatorFrame  extends  JFrame  {
  
public CalculatorFrame() {
    setTitle(
"Calculator");
    setSize(
200200);

    Container contentPane 
= getContentPane();
    contentPane.add(
new CalculatorPanel());
  }

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值