事件监听与堆栈部分操作的学习

计算机软件实习记录(第二周)——事件监听与堆栈部分操作的学习

事件监听

⼀个事件模型中有三个对象:事件源,事件,以及监听程序。
一般使用步骤:
1. 新建⼀个组件(如JButton)。
2. 将该组件添加到相应的⾯板(如JFrame)。
3. 注册监听器以监听事件源产⽣的事件(如通过ActionListener来响应⽤户点击按钮)。
4. 定义处理事件的⽅法(如在ActionListener中的actionPerformed中定义相应⽅法)。
(jf(Jframe),jp(JPanel)的创建已省略)
给jjb2添加一个事件监听,如果按钮jjb2被点击,往文本域jb1里面添加“()”,if下面的代码可以替换成其他的功能


        JTextArea jb1 = new JTextArea();
        Button jb2 = new Button("(");
        jb2.setBounds(20,130,50,50);
        jb2.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(e.getActionCommand().equals("(")){
                    jb1.append("()");
                }
            }
        });
        jp.add(jb1);//往jp里面添加文本域
        jb1.setLocation(20,10);
        jb1.setSize(350,50);
        jp.add(jb2);//往jp里面添加按钮
      
        

例如把上面代码中的jb1.append("()");换成jb1.setText("");就可以实现计算器中C按钮的功能,既清除文本域的所有内容,
而等号的功能就比较复杂,其中的功能(把第一个文本框的算式复制到第二个文本区域内并且在第一个文本区域中显示计算的结果)就需要用到堆栈了。

堆栈

头结点和栈中元素的个数private Node head; private int N;
结点的构造函数:

 public class Node{
        T data;
        Node next;
        public Node(T data,Node next){
            this.data=data;
            this.next=next;
        }
    }

堆栈的构造方法:

public Stack(){
        this.head=new Node(null,null);
        this.N=0;
    }

判断栈中元素个数是否为0

public boolean isEmpty(){
        return N==0;
    }

获取栈中元素个数

public boolean isEmpty(){
        return N==0;
    }

把元素压入栈

public void push(T t){
        Node first=head.next;
        Node newNode = new Node(t, null);
        head.next=newNode;
        newNode.next=first;
        N++;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值