听人问起这个就上网搜了个例子,然后照葫芦画瓢自己也写了一个,大家帮忙看看有什么问题.public class Child {
private ArrayList eventList=new ArrayList();
private boolean isCry;
public void cry(){
isCry=true;
System.out.println("孩子哭了,声音很大");
ChildEvent childEvent =new ChildEvent(this,isCry);
fireChildEvent(childEvent);
}
public void addChildListener(ChildListener childListener){
eventList.add(childListener);
}
public void removeChildListener(ChildListener childListener){
eventList.remove(childListener);
}
private void fireChildEvent(ChildEvent childEvent){
for(int i=0;i<eventList.size();i++){
((ChildListener)eventList.get(i)).beWaked(childEvent);
}
}
public boolean isCry() {
return isCry;
}
public void setCry(boolean isCry) {
this.isCry = isCry;
}
}public class ChildEvent {
private Child child;
private boolean isCry;
public ChildEvent(Child child, boolean isCry) {
this.child = child;
this.isCry = isCry;
}
public void keepOnCry(){
//child.setCry(true);
System.out.println("孩子的哭声越来越大了!!!");
}
public void stopCry(){
child.setCry(false);
System.out.println("孩子吃完奶安静的睡了!!!");
}
}public interface ChildListener {
public void beWaked(ChildEvent e);
}class Father implements ChildListener{ public void beWaked(ChildEvent e) {
// TODO Auto-generated method stub
keepOnSleep();
e.keepOnCry();
}
private void keepOnSleep(){
System.out.println("爸爸被孩子的哭声吵醒了,但是又接着睡去");
}
}class Mother implements ChildListener{ public void beWaked(ChildEvent e) {
// TODO Auto-generated method stub
nurse();
e.stopCry();
} private void nurse(){
System.out.println("妈妈被孩子的哭声叫醒,起来给孩子喂奶");
}
// Motherther may have other methods to stop the child crying
}我现在有些问题,说了是照葫芦画瓢写的,如果程序本身是正确的,请帮再分析一下流程.多用专业术语,谢谢
还有个问题是Event中包含Child,和isCry (照例子写的),为什么这样写?只有child对象进来不行吗?
Event到底是不是像我写的这样是监听者处理的结果 还是?
private ArrayList eventList=new ArrayList();
private boolean isCry;
public void cry(){
isCry=true;
System.out.println("孩子哭了,声音很大");
ChildEvent childEvent =new ChildEvent(this,isCry);
fireChildEvent(childEvent);
}
public void addChildListener(ChildListener childListener){
eventList.add(childListener);
}
public void removeChildListener(ChildListener childListener){
eventList.remove(childListener);
}
private void fireChildEvent(ChildEvent childEvent){
for(int i=0;i<eventList.size();i++){
((ChildListener)eventList.get(i)).beWaked(childEvent);
}
}
public boolean isCry() {
return isCry;
}
public void setCry(boolean isCry) {
this.isCry = isCry;
}
}public class ChildEvent {
private Child child;
private boolean isCry;
public ChildEvent(Child child, boolean isCry) {
this.child = child;
this.isCry = isCry;
}
public void keepOnCry(){
//child.setCry(true);
System.out.println("孩子的哭声越来越大了!!!");
}
public void stopCry(){
child.setCry(false);
System.out.println("孩子吃完奶安静的睡了!!!");
}
}public interface ChildListener {
public void beWaked(ChildEvent e);
}class Father implements ChildListener{ public void beWaked(ChildEvent e) {
// TODO Auto-generated method stub
keepOnSleep();
e.keepOnCry();
}
private void keepOnSleep(){
System.out.println("爸爸被孩子的哭声吵醒了,但是又接着睡去");
}
}class Mother implements ChildListener{ public void beWaked(ChildEvent e) {
// TODO Auto-generated method stub
nurse();
e.stopCry();
} private void nurse(){
System.out.println("妈妈被孩子的哭声叫醒,起来给孩子喂奶");
}
// Motherther may have other methods to stop the child crying
}我现在有些问题,说了是照葫芦画瓢写的,如果程序本身是正确的,请帮再分析一下流程.多用专业术语,谢谢
还有个问题是Event中包含Child,和isCry (照例子写的),为什么这样写?只有child对象进来不行吗?
Event到底是不是像我写的这样是监听者处理的结果 还是?
解决方案 »
- 用java poi读取excel文件的日期的问题
- hibernate运行报错
- (经典问题)判断字符串是否由空格组成,空格分为全角和半角
- 关于Sun官方的JAVA examples的一个小问题?
- 请教关于JFree Chart的使用问题
- 敢问各位大侠!!!!(数组问题),编译通过,不能执行,晕!!
- 在servlet中引用自己写的JNI类,为什么会出这样的错误
- 急,急,请问:如何用<object>的方式以javascript函数来访问applet中的方法或属性:
- 为什么我的jdk显示不了中文了
- 幫助我分析以下原因
- 关于控制台输入输出的小小程序
- 什么是调用处理程序啊---正在学习InvocationHandler
监听器到底是Listener接口还是实现接口的类?
"准实时的应用"这个的意思是?
"事件分发者"又是谁?
谢谢,看来分都是您的,发了快一天了都没人回,呵呵