*****************************

1.2.2

布局管理器 BorderLayout

把容器的布局分为东西南北中五个部位,默认是中间,平铺占满!

 1 package awt;
2
3 import java.awt.BorderLayout;
4 import java.awt.Button;
5 import java.awt.Frame;
6
7 public class TestBorderLayout {
8
9 public static void main(String[] args) {
10 // TODO 自动生成的方法存根
11 Frame f= new Frame("Border Layout!");
12 Button bn= new Button("BN");
13 Button bs = new Button("BS");
14 Button bw = new Button("BW");
15 Button be = new Button("BE");
16 Button bc = new Button("BC");
17 f.add(bn,BorderLayout.NORTH);
18 f.add(bs,BorderLayout.SOUTH);
19 f.add(bw,BorderLayout.WEST);
20 f.add(be,BorderLayout.EAST);
21 f.add(bc,BorderLayout.CENTER);
22 f.setBounds(200, 300, 300, 200);
23 f.setVisible(true);
24
25 }
26
27 }

 

Frame  的默认布局管理器就是BorderLayout

BorderLayout  可以添加容器组件和基本组件

有两个构造方法:① 不带参数  ② 带参数  设置水平垂直间距   BorderLayout ( int hgap,int vgap  ); 默认间距是0;

*************************

1.2.3 GridLayout

矩阵网形式布局,网格控制布局,容器被分成大小相等的矩形,一个矩形中放一个组件。

 1 package awt;
2
3 import java.awt.Button;
4 import java.awt.Frame;
5 import java.awt.GridLayout;
6
7 public class TestGridLayout {
8
9 public static void main(String[] args) {
10 // TODO 自动生成的方法存根
11 Frame f=new Frame("GridLayout Example");
12 Button b1= new Button("按键1");
13
14 Button b2=new Button("按键2");
15 Button b3 =new Button("按键3");
16 Button b4=new Button("按键4");
17 Button b5 =new Button("按键5");
18 Button b6 =new Button("按键6");
19 Button b7 =new Button("按键7");
20 f.setLayout(new GridLayout(3,3));
21 f.add(b1);
22 f.add(b2);
23 f.add(b3);
24 f.add(b4);
25 f.add(b4);
26 f.add(b5);
27 f.add(b6);
28 f.add(b7);
29 f.setSize(500,400);
30 f.setLocation(300,500);
31 f.setVisible(true);
32
33
34 }
35
36
37 }

 

*****************

1.3.1 事件处理

完成事件处理有三个重要的对象:事件源,监听器,事件对象。

不同的监听接口:

ActionListener : 按钮和菜单

WindowListener : 窗口

MouseListener : 鼠标

 1 package awt;
2
3 import java.awt.Button;
4 import java.awt.Frame;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7
8 public class TestActionEvent {
9
10 public static void main(String[] args) {
11 // TODO 自动生成的方法存根
12 Frame f= new Frame("TestActionEvent");
13 Button b1= new Button("b1");
14 Button b2=new Button("b2");
15 Monitor m=new Monitor();
16 b1.addActionListener(m);
17 b2.addActionListener(m);
18 b2.setActionCommand("Game over!");
19 f.add(b1,"North");
20 f.add(b2,"Center");
21 f.setLocation(500,500);
22 f.setSize(300,300);
23 f.pack();
24 f.setVisible(true);
25 f.setResizable(false);
26 }
27
28 }
29 class Monitor implements ActionListener{
30 public void actionPerformed(ActionEvent e) {
31 System.out.println("A button has been pressed");
32 System.out.println("The relative info is :"+e.getActionCommand());
33 }
34 Monitor (){};
35 }

/*
* 创建监听类实现监听接口
* 设置函数传入 事件处理 ActionListener e
*
* getActionCommand函数 传入文字显示结果
*
*
* 组件调用 addActionListener() 函数 把监听类的实例化对象 传入
*
* b1.addActionListener(m);
*/



 

*************************************

1.3.2 文本框的事件处理

文本框组件    TextField   在文本框中按回车键 也会触发ActionEvent 事件,用TextListener 接口的类监听 TextEvent 事件。

 1 package awt;
2
3 import java.awt.Color;
4 import java.awt.Frame;
5 import java.awt.TextField;
6 import java.awt.event.ActionEvent;
7 import java.awt.event.ActionListener;
8 import java.awt.event.TextEvent;
9 import java.awt.event.TextListener;
10
11 public class TFActionEvent {
12
13 public static void main(String[] args) {
14 // TODO 自动生成的方法存根
15 new TextFeildFrame();
16 }
17
18 }
19 class TextFeildFrame extends Frame{
20 TextField tf;
21 public TextFeildFrame() {
22 tf=new TextField();
23 tf.addActionListener(new TFActionListener());
24 tf.addTextListener(new TFTextListener());
25 this.add(tf);
26 this.setBackground(Color.BLUE);
27 this.setBounds(300,300,300,300);
28 this.pack();
29 this.setVisible(true);
30 }
31
32
33
34 class TFTextListener implements TextListener{
35 public void textValueChanged(TextEvent e) {
36 System.out.println("Change:");
37 System.out.println(tf.getText());
38
39 }
40 }
41
42
43 class TFActionListener implements ActionListener{
44 public void actionPerformed(ActionEvent e) {
45 TextField tf= (TextField)e.getSource();
46 System.out.println("Enter pressed:"+tf.getText());
47 tf.setText("");
48
49 }
50 }
51 }

###############

在文本框中按回车也会触发ActionEvent 事件,还有就是文本框内容的改变也会触发。

TextListener接口只有一个方法 :   textValueChanged()    参数是一个 TextEvent对象。

————————————————————————————————————————

1.4  适配器

1.4.1 窗口事件处理

AWT 中处理窗口的是  WindowEvent   要实现  WindowListener 接口

一共对应七个事件

 1 package awt;
2
3 import java.awt.Frame;
4 import java.awt.event.WindowAdapter;
5 import java.awt.event.WindowEvent;
6
7 public class TestWindowAdapter {
8
9 public static void main(String[] args) {
10 // TODO 自动生成的方法存根
11 new MFrame();
12 }
13 }
14 @SuppressWarnings("serial")
15 class MFrame extends Frame{
16 MFrame(){
17 setBounds(300,300,400,300);
18 this.addWindowListener(new WindowMonitor());
19 setVisible(true);
20 }
21 class WindowMonitor extends WindowAdapter{
22 public void windowClosing(WindowEvent e) {
23 setVisible(false);
24 System.exit(0);
25 }
26 }
27 }
生成一个窗口可以关闭
WindowMonitor继承了WindowAdapter适配器,这样就不用实现接口的所有函数了。

 

JavaDailyReports10_09的更多相关文章

随机推荐

  1. Linux的一些基本操作

    1. 解压,对于tar格式和zip格式不同,后者是unzip test.zip ,如果要解压到指定路径是 unzip test.zip -d ../

  2. 效率神器-MouseInc推荐和使用

    主要功能 鼠标手势 按住右键滑动即可开始使用. 配置细微,可自由修改手势宽度,颜色,识别灵敏度等. 支持黑名单,支持特定软件自定义手势,支持复合动作. 功能非常强大,比如下面的操作: 选中一个网址,画 ...

  3. MyBatis if 标签的坑,居然被我踩到了。。。

    事件的原因是这样的,需求是按条件查数据然后给前端展示就行了,写的时候想着挺简单的,不就是使用 MyBatis 动态 SQL 去查询数据吗? 现实还是很残酷的,等我写完上完 UAT 后,前端同学说根据s ...

  4. 团队作业4-Day3

    团队作业4-Day3 项目git地址 1. 站立式会议 2. 项目燃尽图 3. 适当的项目截图 今日暂无较大代码更新 4. 代码/文档签入记录(部分) 5. 每人每日总结 吴梓华:今天未进行开发,学习 ...

  5. P5857 「SWTR-03」Matrix

    原本自己有一个思路的,推了半天不太确定看了下题解,发现到后面完全不知道他代码在写些什么(我太弱了),所以打算自己理一下. 题解 首先我们可以肯定的一点就是,我们可以发现,一个矩阵的形态只和他横着和竖着 ...

  6. 题解-CF429C Guess the Tree

    题面 CF429C Guess the Tree 给一个长度为 \(n\) 的数组 \(a_i\),问是否有一棵树,每个节点要么是叶子要么至少有两个儿子,而且 \(i\) 号点的子树大小是 \(a_i ...

  7. AcWing 317. 陨石的秘密

    1 -> {} 2 -> [] 3 -> () \(f[d][a][b][c]\) 表示 \([i * 2 - 1, j * 2]\) 这段区间 深度为 d \(1\) 有 \(a\ ...

  8. JAVA字符配置替换方案

    在JAVA中,很多时候,我们后台要对数据进行变量配置,希望可以在运行时再进行变量替换.我们今天给大空提供的是org.apache.commons.text方案. 1.首先,引用org.apache.c ...

  9. docker下安装svn-server

    参考资料,搭建过程比较详细:https://www.jianshu.com/p/a25fac7e7811 我按照上面资料搭建后,将其重新制作成了新的镜像theorydance/svn-server:1 ...

  10. jmeter__编写脚本学习笔记、备忘

    web持续添加 前言: 1. token就是令牌,比如你授权(登录)一个程序时,他就是个依据,判断你是否已经授权该软件:也叫关联 2. cookie就是写在客户端的一个txt文件,里面包括你登录信息之 ...