java 中与Frame Panel ActionListener 相关的例程

来源:互联网 发布:大数据产业园发展模式 编辑:程序博客网 时间:2024/06/03 12:30
package org.gan.listener;import java.awt.Button;import java.awt.Frame;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Panel1 {public static void main(String[] args) {Frame f = new Frame();f.setBounds(100, 100, 300, 300);f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});Button b = new Button("BB");java.awt.Panel p = new java.awt.Panel();p.add(b);f.add(p);f.setVisible(true);}}

要知道 Frame的获得有两种方式,一种就是Frame f  =  new Frame();

还有一种就是直接继承自Frame类,通过this进行调用。

要注意 窗口的关闭监听是加载在Frame的对象之上的。Frame  框架的意思

框架上不能直接添加组件  组件要首先通过panel 来添加进panel  然后呢再通过Frame添加进框架内



组件的添加监听方法 addWindowListener方法竟然是在WindowAdapter设配器类中的,程序中运用的而是适配器类匿名类 

直接new了一个匿名类出来 ,没有名字的。


package org.gan.listener;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Panel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class ActionListener2 extends Frame{Panel p = new Panel();TextField txtField = new TextField(50);Button btn = new Button("提交");public void init() {this.setLayout(new FlowLayout());// 注册ActionListener接口this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});btn.addActionListener(new myActionListen());p.add(txtField);p.add(btn);this.setBackground(Color.GRAY);this.add(p);// 设置标题this.setTitle("事件处理程序");// 设置尺寸,默认为(0,0)this.setSize(500, 500);// 设置是否可见,默认为falsethis.setVisible(true);}// 实现ActionListener接口public class myActionListen implements java.awt.event.ActionListener {public void actionPerformed(ActionEvent e) {txtField.setText("Hello World!");}}public static void main(String[] agrs) {new ActionListener().init();}}

如上例所述,对一个按钮设置监听,

通过一个内部类来实现,监听的对象是那个内部类的实例。