zoukankan      html  css  js  c++  java
  • JavaDailyReports10_09

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

    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适配器,这样就不用实现接口的所有函数了。
     
  • 相关阅读:
    $scope.$watch监听
    git 修改地址,及提交返回403错误原因
    wepy wx:getLocation 配置 permission
    vue-cli 3.x 导入jquety
    微信小程序、微信公众号、H5之间相互跳转
    微信小程序之滚动选择器
    软件开发过程中所需要的文档
    Git 常用命令详解
    小程序填坑--TypeError: this.setData is not a function
    使用tomcat时,不用给webapps文件放入文件,直接访问项目方法
  • 原文地址:https://www.cnblogs.com/rainbow-1/p/13788382.html
Copyright © 2011-2022 走看看