java小程序,课程设计在首窗体界面上显示3个按钮分别是计算器,鼠标实验,文字效果

 单击“运算器实验“按钮,弹出一个新窗体,可以进行算术运算,但要实现基本的加减乘除运算;

单击“文字效果实验”按钮,弹出一个新窗体,在新窗体上有输入框,可以对自己输入的文字进行字体和颜色变换;

单击“鼠标事件实验”按钮,弹出一个新窗体,在新窗体上可以进行简单的绘画。

计算器

 Calculator

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

public class Caculator extends JFrame implements ActionListener {

    public static void main(String[] args) {
        new Caculator();
    }
    private StringBuilder sBuilder = new StringBuilder();  //利用StringBuilder类来显示,以及区分两个操作数
    JTextArea text=new JTextArea();
    double a,b;
    Double sum;
    int i;
    String str="";
    String str2="";
    private List<String> countNum = new ArrayList<String>(); // 存储历史记录
    public Caculator()
    {
  setBounds(100,100,400,400);
  setTitle("计算器");
  JMenuBar menubar=new JMenuBar();//创建菜单条
        JMenu menu1=new JMenu("查看(V)");//创建和设置菜单名
        JMenu menu2=new JMenu("编辑(E)");//创建和设置菜单名
        JMenu menu3=new JMenu("帮助(H)");//创建和设置菜单名
        JMenuItem item1 = new JMenuItem("查看历史记录"); //编写二级菜单
        JMenuItem item2 = new JMenuItem("编辑历史记录");
        JMenuItem item3 = new JMenuItem("帮助");
        menu1.add(item1);
        menu2.add(item2);
        menu3.add(item3);
        menubar.add(menu1);//将菜单加入到菜单条中
        menubar.add(menu2);
        menubar.add(menu3);
        this.setJMenuBar(menubar);//将设置好的菜单条放在窗口中
        this.setLayout(new BorderLayout());//添加文本框



        item1.addActionListener(this);//为二级菜单栏添加监听事件
        item2.addActionListener(this);
        item3.addActionListener(this);


        JPanel p1=new JPanel();
        JPanel p2=new JPanel();
        text.setPreferredSize(new Dimension (370,60));//设置组件大小
        p2.setLayout(new FlowLayout());
        p1.add(text);
        this.add(p1,BorderLayout.NORTH);

        p2.setLayout(new GridLayout(5,4));       //添加按钮
        JButton button[]=new JButton[20];
        button[0]=new JButton("C");             //清空
        button[1]=new JButton("CE");   //清除之前输入的一个数据
        button[2]=new JButton("sqrt");          //取余
        button[3]=new JButton("÷");   //除法
        button[4]=new JButton("7");
        button[5]=new JButton("8");
        button[6]=new JButton("9");
        button[7]=new JButton("x");  //乘号
        button[8]=new JButton("4");
        button[9]=new JButton("5");
        button[10]=new JButton("6");
        button[11]=new JButton("—");  //减号
        button[12]=new JButton("1");
        button[13]=new JButton("2");
        button[14]=new JButton("3");
        button[15]=new JButton("+");  //加号
        button[16]=new JButton("1/X"); //乘方
        button[17]=new JButton("0");
        button[18]=new JButton(".");  //小数点
        button[19]=new JButton("="); //等于

        for(int i=0;i<button.length;i++ )        //将组件加入容器
            p2.add(button[i]);
        button[19].setBackground(Color.ORANGE);//设置按钮的背景颜色为橙色
        p2.add(button[19]);
        add(p2,BorderLayout.CENTER);

        for(int i=0;i<button.length;i++)         //为每一个事件(按钮)添加监视器
            button[i].addActionListener(this);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //点击X号可以关闭程序
    }

    public void actionPerformed(ActionEvent e) //事件处理
    {
        String lab=e.getActionCommand();                           //得到当前的按钮字符,后面进行匹配

        if(lab.equals("0"))                                                                 //处理按钮 0~9
        {
            sBuilder.append("0");//利用StringBuilder类的对象调用方法,将数据存起来
            text.setText(sBuilder.toString());   //显示之前所有输入的数据
        }
        else if(lab.equals("1"))
        {
            sBuilder.append("1");               //利用StringBuilder类的对象调用方法,将数据存起来
            text.setText(sBuilder.toString());   //显示之前所有输入的数据
        }
        else if(lab.equals("2"))
        {
            sBuilder.append("2");               //利用StringBuilder类的对象调用方法,将数据存起来
            text.setText(sBuilder.toString());    //显示之前所有输入的数据
        }
        else if(lab.equals("3"))
        {
            sBuilder.append("3");               //利用StringBuilder类的对象调用方法,将数据存起来
            text.setText(sBuilder.toString());   //显示之前所有输入的数据
        }
        else if(lab.equals("4"))
        {
            sBuilder.append("4");
            text.setText(sBuilder.toString());
        }
        else if(lab.equals("5"))
        {
            sBuilder.append("5");
            text.setText(sBuilder.toString());
        }
        else if(lab.equals("6"))
        {
            sBuilder.append("6");
            text.setText(sBuilder.toString());
        }
        else if(lab.equals("7"))
        {
            sBuilder.append("7");
            text.setText(sBuilder.toString());
        }

        else if(lab.equals("8"))
        {
            sBuilder.append("8");
            text.setText(sBuilder.toString());
        }
        else if(lab.equals("9"))
        {
            sBuilder.append("9");               //利用StringBuilder类的对象调用方法,将数据存起来
            text.setText(sBuilder.toString());   //显示之前所有输入的数据
        }
        else if(lab.equals("CE"))                                 //处理"CE"按钮事件   即清除当前的输入的数据
        {
            sBuilder.deleteCharAt(sBuilder.length() - 1);  //StringBuilder的实例化对象调用方法下标减1即可
            text.setText(sBuilder.toString());
        }
        else if(lab.equals("C"))                   //处理"CE"按钮事件   即清除之前的输入所有的数据
        {
            sBuilder = new StringBuilder();                                                   //重新创建即可清除之前的输入所有的数据
            text.setText(sBuilder.toString());
        }
        else if(lab.equals("."))                                                    // 处理按钮 "." 事件
        {
            sBuilder.append(".");                                                   //利用StringBuilder类的对象调用方法,将数据存起来
            text.setText(sBuilder.toString());                     //显示之前输入的数据
        }
        else if(lab.equals("+"))       //处理+"按钮乘法
        {
            a = Double.parseDouble(sBuilder.toString());   //将 运算符 之前的数据 作为第一个操作数 a
            i=0;
            sBuilder = new StringBuilder();                                          //将数组清空来存储第二个操作数 b
            text.setText("+");
        }
        else if(lab.equals("—"))                //处理"—"按钮乘法
        {
            str="—";
            a = Double.parseDouble(sBuilder.toString());   //将前面的输入的数 作为第一个操作数a
            i=1;                                                                                          
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值