zoukankan      html  css  js  c++  java
  • java事件处理

    1.ActionEven事件

    文本框,按钮,菜单项,密码框,单选按钮都可以出发ActionEvent事件

    使用

    addActionListener(ActionListener listen1)

    来注册监视器

    ActionListener本来是一个接口,我们必须写类(或者其他接口)来实现它的唯一方法

    actionPerformed(ActionEvent e)

    这里的e是事件源给该方法的一个参数,ActionEvent类有两个方法

    public Object getSource();//返回事件源的上转型对象的引用
    public String getActionCommand()//返回一个相关的“命令”字符串,比如这个ActionEvent是文本框,那就是返回他的文本内容

    统计单词字数的一个代码

    class Component extends JFrame{
        JTextField test1;
        JButton button1;
        JTextArea testArea1;
        JRadioButton radioButton1,radioButton2;
        ButtonGroup group1;
        Component(){
            init();
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        void init(){
            setLayout(new FlowLayout());
            test1=new JTextField(8);
            button1=new JButton("huang");
            testArea1=new JTextArea(8,24);
            add(test1);
            add(button1);
            add(new JScrollPane(testArea1));
            AListener a=new AListener(test1,button1,testArea1);
            test1.addActionListener(a);//需要import java.awt.event.ActionListener;
            button1.addActionListener(a);
        }
    }
    
    class AListener implements ActionListener{
        JTextField test1;
        JButton button1;
        JTextArea testArea1;
        AListener(JTextField test,JButton button,JTextArea testArea){
            test1=test;
            button1=button;
            testArea1=testArea;
        }
        public void actionPerformed(ActionEvent e){
            String a=test1.getText();
            testArea1.append(a+"的长度"+a.length());
        }
    }


     ItemEvent事件

    选择框和下拉列表都可以触发ItemEvent事件

    注册监视器

    addItemListener(ItemListener listen1)

    ItemListener接口也只有一个

    对应事件触发的,可以用 combo1.getSelectedItem()获得事件的事件源

    public void itemStateChanged(ItemEvent e)

    简单计算器代码,(有个bug,下拉框要换了其他才能激活

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.KeyEvent;
    public class test{
    
        public static void main(String args[]){
            Component window1=new Component();
            window1.setBounds(40,40,300,200);
        }
    }
    
    class Component extends JFrame{
        JTextField test1,test2;
        JButton button1;
        JTextArea testArea1;
        JRadioButton radioButton1,radioButton2;
        ButtonGroup group1;
        JComboBox combo1;
        Component(){
            init();
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        void init(){
            setLayout(new FlowLayout());
            test1=new JTextField(4);
            test2=new JTextField(4);
            button1=new JButton("go");
            testArea1=new JTextArea(5,20);
            combo1=new JComboBox();
            combo1.addItem("+");
            combo1.addItem("-");
            combo1.addItem("*");
            combo1.addItem("/");
            add(test1);
            add(combo1);
            add(test2);
            add(button1);
            add(new JScrollPane(testArea1));
            Computer computer1=new Computer(test1,test2,testArea1);
            Fuhao fuhao1=new Fuhao(computer1,combo1);
            combo1.addItemListener(fuhao1);
            button1.addActionListener(computer1);
        }
    }
    class Fuhao implements ItemListener{
        Computer computer1;
        JComboBox combo1;
        Fuhao(Computer a,JComboBox b){
            computer1=a;
            combo1=b;
        }
        public void itemStateChanged(ItemEvent e){
    //        System.out.println(combo1.getSelectedItem().toString());
            computer1.getFuhao(combo1.getSelectedItem().toString());
        }
    }
    class Computer implements ActionListener{
        JTextField a,b;
        JTextArea c;
        String fuhao;
        double result;
        void getFuhao(String a){
            fuhao=a;
        }
        Computer(JTextField a,JTextField b,JTextArea c){
            this.a=a;
            this.b=b;
            this.c=c;
        }
        public void actionPerformed(ActionEvent e){
            try{
    //            System.out.println(fuhao);
    //            System.out.println(a.getText());
    //            System.out.println(b.getText());
                double a1=Double.parseDouble(a.getText());
                double b1=Double.parseDouble(b.getText());
                if(fuhao.equals("+")){
                    result=a1+b1;
                }else if(fuhao.equals("-")){
                    result=a1-b1;
                }else if(fuhao.equals("*")){
                    result=a1*b1;
                }else if(fuhao.equals("/")){
                    result=a1/b1;
                }
                c.append(a1+" "+fuhao+" "+b1+"="+" "+result+"
    ");
            }
            catch(Exception exp){
                c.append("
    请输入数字
    ");
            }
        }
    }
  • 相关阅读:
    Spring-Cloud 学习笔记-(4)负载均衡器Ribbon
    Spring-Cloud 学习笔记-(5)熔断器Hystrix
    微信支付(APP)
    Resetting Frame Animation
    Java内部类与final关键字详解
    UML中关联(Association)和依赖(Dependency)的区别
    ListView 介绍
    android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别
    AsyncTask和Handler对比
    create groups 和 create folder reference
  • 原文地址:https://www.cnblogs.com/vhyc/p/5969231.html
Copyright © 2011-2022 走看看