当月日历

本文详细介绍了如何设计并实现一个基本的计算器应用,包括界面布局、按钮事件监听、数字输入和数学运算等功能。

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




import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.server.Operation;


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


public class Calculator extends JFrame{
    public  String num="0";
    public double num1=0;
//    public double num2=0;
//    public double result=0;
public JTextField textArea;
public JButton jb0;
public JButton jb1;
public JButton jb2;
public JButton jb3;
public JButton jb4;
public JButton jb5;
public JButton jb6;
public JButton jb7;
public JButton jb8;
public JButton jb9;
public JButton jb14;
public JButton jb24;
public JButton jb34;
public JButton jb42;
public JButton jb43;
public JButton jb44;


public  Calculator(){

setTitle("计算器");
setSize(400, 400);
setLocationRelativeTo(null);

JPanel p = new JPanel();
 p.setLayout(new GridLayout(3,1,0,4));
 setLayout(new BorderLayout(20,50));
 JPanel p1 = new JPanel();
 JPanel p2 = new JPanel();
 p2.setLayout(new GridLayout(4,4,4,4));
 p.add(p1, BorderLayout.CENTER);
 
 textArea=new JTextField("0");
jb7=new JButton("7");
jb8=new JButton("8");
jb9=new JButton("9");
jb14=new JButton("/");
jb4=new JButton("4");
jb5=new JButton("5");
jb6=new JButton("6");
jb24=new JButton("*");
jb1=new JButton("1");
jb2=new JButton("2");
jb3=new JButton("3");
jb34=new JButton("-");
jb0=new JButton("0");
jb42=new JButton(".");
jb43=new JButton("=");
jb44=new JButton("+");


textArea.setSize(400, 80);
textArea .setHorizontalAlignment(SwingConstants.RIGHT);
textArea. setFont(new Font("黑体",Font.BOLD,50));
// 将组件添加到容器中
  add(textArea);
p2. add(jb7);
p2.  add(jb8);
p2.  add(jb9);
p2.  add(jb14);
p2. add(jb4);
p2. add(jb5);
p2. add(jb6);
p2. add(jb24);
p2. add(jb1);
p2.  add(jb2);
p2.  add(jb3);
p2.  add(jb34);
p2.  add(jb0);
p2. add(jb42);
p2.  add(jb43);
p2.  add(jb44);
add(p2);
add(p, BorderLayout.NORTH);
add(p2, BorderLayout.CENTER);
// 注册事件监听器
MyActionListenner myActionListenner=new MyActionListenner();
MyActionListenner myActionListenner2=new MyActionListenner();
jb7.addActionListener(myActionListenner);
jb8.addActionListener(myActionListenner);
jb9.addActionListener(myActionListenner);
jb14.addActionListener(myActionListenner2);
jb4.addActionListener(myActionListenner);
jb5.addActionListener(myActionListenner);
jb6.addActionListener(myActionListenner);
jb24.addActionListener(myActionListenner2);
jb1.addActionListener(myActionListenner);
jb2.addActionListener(myActionListenner);
jb3.addActionListener(myActionListenner);
jb34.addActionListener(myActionListenner2);
jb0.addActionListener(myActionListenner);
jb42.addActionListener(myActionListenner2);
jb43.addActionListener(myActionListenner2);
jb44.addActionListener(myActionListenner2);
 

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);    //禁止缩放
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}


//数字事件监听器
 class MyActionListenner implements ActionListener{


@Override
public void actionPerformed(ActionEvent e) {
Object object=e.getSource();
JButton button=(JButton)object;
num1=Double.parseDouble( num);
String a=button.getText();
if(Double.parseDouble(num)==0){
num=String.valueOf(a);
textArea.setText(num);
}
else {
num+=String.valueOf(a);
textArea.setText(num);
}
}

}
//操作命令事件监听器
 class MyActionListenner1 implements ActionListener{


@Override
public void actionPerformed(ActionEvent e) {
Object object=e.getSource();
JButton button=(JButton)object;
String operator = "=";
num1=Double.parseDouble( num);
operator=button.getText();
if(operator.equals("+")){
num1 += Double.valueOf(textArea.getText());
} else if (operator.equals("-"))
          num1 -= Double.valueOf(textArea.getText());
      else if (operator.equals("*"))
      num1 *= Double.valueOf(textArea.getText());
      else if (operator.equals("/"))
      num1 /= Double.valueOf(textArea.getText());
      else if (operator.equals("="))
      num1 = Double.valueOf(textArea.getText());
textArea.setText(String.valueOf(textArea));
}
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值