分类信息网站如何建设,石家庄市建设厅网站,网上注册公司营业执照流程,我做的电影网站为什么百度搜索不到TestActionEvent.java没有调用方法#xff0c;但是有反应。反应自己要编写程序有反应。
事件模型#xff1a;一定要有某些反应。
写程序#xff0c;监听的操作是自动发生的#xff0c;一直监听。钩子函数#xff0c;#xff08;回调函数#xff09;
怎么让它自动执行但是有反应。反应自己要编写程序有反应。
事件模型一定要有某些反应。
写程序监听的操作是自动发生的一直监听。钩子函数回调函数
怎么让它自动执行首先告诉人家你的方法名是什么也不知道但是这样好像也不行
实现某个特定的接口然后button类里面也有特定的方法。
事件分很多中监听事件的接口也有很多。但某件发生时封装成一个对象当成一个参数传递给监听事件。
栗子TestActionEvent2.java通过把actionCommand把一个按钮的acitonCommand设置为别的。用来区别不同的按钮。栗子TFActionEvent.javaTextField tf (TextField)e.getSource();拿到事件源把这个源对象当作ActionEvent的父类。
所以需要强制类型转换。
栗子TFPassword.java内部类
Frame像一个大管家我们要拿到这个大管家的引用。
不需要内部的东西。
持有对方的引用。
直接访问大管家。如下面门面模式。拿到管家的引用。和谁有关系使用大管家访问他。栗子
package com.zhj.www;import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.*;public class TFMath {public static void main(String[] args) {new TFFrame().launchFrame();}
}
class TFFrame extends Frame{TextField num1,num2,num3;public void launchFrame() {num1 new TextField(10);num2 new TextField(10);num3 new TextField(15);//初始化Label lblPlus new Label();Button btnEqual new Button();//btnEqual.addActionListener(new MyMonitor(this));btnEqual.addActionListener(new MyMonitor());setLayout(new FlowLayout());add(num1);add(lblPlus);add(num2);add(btnEqual);add(num3);pack();setVisible(true);}/*内部类随意访问成员变量和方法class文件带有美元符号是内部类*/class MyMonitor implements ActionListener{public void actionPerformed(ActionEvent e) {int n1 Integer.parseInt(num1.getText());int n2 Integer.parseInt(num2.getText());num3.setText( (n1n2));}}
}
/*
class MyMonitor implements ActionListener{/*TextField num1,num2,num3;public MyMonitor(TextField num1,TextField num2,TextField num3) {this.num1 num1;this.num2 num2;this.num3 num3;}*//*大管家模式*//*TFFrame tfFrame null;//持有Frame的引用public MyMonitor(TFFrame tfFrame) {this.tfFrame tfFrame;}public void actionPerformed(ActionEvent e) {int n1 Integer.parseInt(tfFrame.num1.getText());int n2 Integer.parseInt(tfFrame.num2.getText());tfFrame.num3.setText( (n1n2));}
}
*/---------------------------------------------------------------------------------------------------------------------TestPaint.javag就是画笔Graphics类
paint是重写Container里的方法。
paint方法什么时候会被调用缩小或扩大窗口也就是重画的时候。
恢复现场-Color c g.getColor();g.setColor(c);先调用update()-paint()。Updata()实现双缓冲。MouseAdapter实现MouseListener接口。
为什么要这样
因为MouseListener有6个方法我们需要全部写。
MouseAdapter实现了MouseListener接口只不过是空的
我们只需要重写我们需要的MouseAdapter的某个方法。事件发生时他会把这个事件的信息包装成一个对象MouseEvent e。
Point对象AWT类中有一个点对象封装了xy。
f.repaint()//对当前点的重画对Frame强制进行重画。TestWindowClose.javaTestWindowClose.java
package com.zhj.www;import java.awt.Color;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class TestWindowClose {public static void main(String[] args) {new MyFrame55(MyFrame);}
}
class MyFrame55 extends Frame{public MyFrame55(String s) {super(s);/*Frame*/setLayout(null);setBounds(300,300,400,300);this.setBackground(new Color(204, 204, 255));setVisible(true);/*添加监听*///this.addWindowListener(new MyWindowMonitor());//匿名的内部类 new 一个WindowAdapter(父类)this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);System.exit(-1);}});}/*//内部类class MyWindowMonitor extends WindowAdapter{public void windowClosing(WindowEvent e) {setVisible(false);System.exit(0);//0是正常退出-1是非正常退出。}}*/
}事件WindowEvent类处理事件的接口WindowListener
匿名的内部类但要看懂什么时候使用匿名类
经常修改不要使用匿名类。package com.zhj.www;import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;public class TestKey {public static void main(String[] args) {new KeyFrame().launchFrame();}
}
class KeyFrame extends Frame{public void launchFrame() {setSize(200, 200);setLocation(300, 300);this.addKeyListener(new MyKeyMonitor());setVisible(true);}class MyKeyMonitor extends KeyAdapter{public void keyPressed(KeyEvent e) {//System.out.println(ok);int keyCode e.getKeyCode();if(keyCode KeyEvent.VK_UP) {System.out.println(up);}}}
}