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);
}

  

  

原文地址:https://www.cnblogs.com/yanxiaoge/p/10776828.html