zoukankan      html  css  js  c++  java
  • java----GUI和接口回调

     GUI:

    图形用户接口

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    public class Demo {
        public static void main(String[] args) {
            Mygson();
        }
        private static void Mygson() {
            new MyFrame();
        }
    }
    class MyFrame extends Frame implements Action {
        public MyFrame(){
            //设置宽高
            this.setSize(600,400);
            //设置窗体的标题
            this.setTitle("GUI");
            //创建按钮
            Button button = new Button("点击");
            //按钮添加点击事件
            button.addActionListener(this);
            //给窗体添加点击事件
            this.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    super.windowClosing(e);
                    System.exit(0);
                }
            });
    
            //创建一个线性布局
            FlowLayout flowLayout = new FlowLayout();
            //把布局应用到窗体上
            this.setLayout(flowLayout);
            //把按钮添加窗体上
            this.add(button);
            this.setVisible(true);
        }
        @Override
        public Object getValue(String key) {
            return null;
        }
        @Override
        public void putValue(String key, Object value) {
        }
        //单机事件处理方法;
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("点击事件触发");
        }
    }
    

      

     事件处理:

    接口回调

    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    public class Demo {
        public static void main(String[] args) {
            Mygson();
        }
        private static void Mygson() {
            new MyFrame();
        }
    }
    class MyFrame extends Frame implements MoneySetListen{
        private Label label = new Label("金额");
        private Button button = new Button("购买");
        public MyFrame(){
            this.setSize(400,200);
            FlowLayout flowLayout = new FlowLayout();
            this.setLayout(flowLayout);
            this.setTitle("GUI");
            this.add(label);
            this.add(button);
            this.setVisible(true);
            button.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    new MyFrame2().setMoneySetListen(MyFrame.this);
                }
            });
            this.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    super.windowClosing(e);
                    System.exit(0);
                }
            });
        }
        @Override
        public void setMoney(String money) {
            label.setText(money);
        }
    }
    
    class MyFrame2 extends Frame{
        private MoneySetListen moneySetListen;
        private TextField text = new TextField(20);
        private Button button = new Button("确认");
        public MyFrame2(){
            this.setSize(400,200);
            FlowLayout flowLayout = new FlowLayout();
    
            this.setLayout(flowLayout);
            this.setTitle("GUI");
            this.add(text);
            this.add(button);
            this.setVisible(true);
    
            button.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    String money = text.getText();
                    moneySetListen.setMoney(money);
                }
            });
            this.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    super.windowClosing(e);
                    System.exit(0);
                }
            });
        }
        //MyFrame 继承了MoneySetListen 接口,则可以用接口来接受this,然后调用this的setMoney方法;
        public void setMoneySetListen(MoneySetListen moneySetListen){
            this.moneySetListen = moneySetListen;
        }
    }
    interface MoneySetListen{
        public void setMoney(String money);
    }
    

      

      

  • 相关阅读:
    mysql存储过程 --游标的使用 取每行记录 (多字段)
    mysql rowid实现
    redis进程守护脚本
    CF1042B 【Vitamins】(去重,状压搜索)
    CF1042A 【Benches】(优先队列)
    魔板 Magic Squares(广搜,状态转化)
    解方程(hash,秦九韶算法)
    noip模拟赛 动态仙人掌(并查集,贪心)
    (暴力碾标算)NOIP模拟赛 宗教仪式
    牛客网NOIP赛前集训营-提高组18/9/9 A-中位数
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/10776828.html
Copyright © 2011-2022 走看看