AWT

1.GUI编程

组件

  • 窗口
  • 弹窗
  • 面板
  • 文本框
  • 列表框
  • 按钮
  • 图片
  • 监听事件
  • 鼠标
  • 键盘事件
  • 破解工具

2.Awt

2.1Frame

2.1.1Frame是一个顶级窗口

2.1.2Frame默认的布局管理器是BorderLayout类型

2.2Panel面板讲解

2.2.1Panel无法单独显示,必须添加到某个容器中

2.2.2Panel默认的布局管理器是FlowLayout类型。

2.3种布局管理器

  • 流式布局(FlowLayout)

  • 东西南北中(BorderLayout)

  • 表格布局(GridLayout)

2.4大小、定位、背景颜色、可见性、监听

2.5事件监听

匿名类内部类{}

普通类(不是抽象类(abstract))实现接口必须重写接口的所有方法

//        frame.addWindowListener(new WindowAdapter() {
//            @Override
//            public void windowClosing(WindowEvent e) {
//                System.exit(0);
//            }
//        });
        A a = new A();
        frame.addWindowListener(a);
    }
}
class A extends WindowAdapter {
    @Override
    public void windowClosing(WindowEvent e) {
        super.windowClosing(e);
    }
}

计算器+组合+内部类

package com.fjbc.Extest;

import java.awt.*;
import java.awt.event.*;

public class TestMath3 {

   public static void main(String args[]) {
       new MyMathFrame().launchFrame();
   }
}

class MyMathFrame extends Frame {
   TextField num1, num2, num3;

   public void launchFrame() {
       num1 = new TextField( 10 );
       num2 = new TextField( 15 );
       num3 = new TextField( 15 );
       Label lblPlus = new Label( "+" );
       Button btnEqual = new Button( "=" );
       btnEqual.addActionListener( new MyMonitor() );
       setLayout( new FlowLayout() );
       add( num1 );
       add( lblPlus );
       add( num2 );
       add( btnEqual );
       add( num3 );
       pack();
       setVisible( true );
   }

   /*
   * 这个MyMonitor类是内部类,它在MyFrame类里面定义 MyFrame类称为MyMonitor类的包
   装类
   */
   /*
    * 使用内部类的好处:
    * 第一个巨大的好处就是可以畅通无阻地访问外部类(即内部类的包装类)的所有成员变量和方法
    * 如这里的在MyFrame类(外部类)定义的三个成员变量num1,num2,num3,
    * 在MyMonitor(内部类)里面就可以直接访问
    * 这相当于在创建外部类对象时内部类对象默认就拥有了一个外部类对象的引用
    */
   private class MyMonitor implements ActionListener {
       public void actionPerformed(ActionEvent e) {
           int n1 = Integer.parseInt( num1.getText() );
           int n2 = Integer.parseInt( num2.getText() );
           num3.setText( "" + (n1 + n2) );
           num1.setText( "" );
           num2.setText( "" );
       }
   }
}


posted @ 2022-12-03 23:18  醉读付人心  阅读(311)  评论(0)    收藏  举报