我想在一个类(不继承自JComponent)中的数据被修改后,向界面类发送一个消息,以便及时更新所有界类中的相应数据。//javaBean
public class MyItem{
private String itemName; public MyItem(){
itemName=new String("");
} public String getItemName(){
return itemName;
} public voidg setItemName(String name){
itemName=name;
}
}//自定义事件类
public class MyEvent extends EventObject{
private MyItem item=null; public MyEvent(MyItem item){
super(item);
this.item=item;
}
}//自定义监听器
public interface MyListener extends EventListener {
public void dataChanged(MyEvent e);
}
//管理器
public class MyItemManager{
private static ArrayList<MyItem> list=new ArrayList<MyItem>; private MyItemManager(){}
public static addMyItem(MyItem item){
list.add(item); //这里如何向MyUI发送MyEvent消息,以通知界面更新
}
}
//界面类
public class MyUI exends JFrame{ //如果可行,这里如何接收MyListener消息
}
记得以前用VC时,只要用SendMessage(UINT msg,LPARAM param)向发送一个消息到消息循环,就可以在任何地方接收并处理它,不知Java中如何处理?
public class MyItem{
private String itemName; public MyItem(){
itemName=new String("");
} public String getItemName(){
return itemName;
} public voidg setItemName(String name){
itemName=name;
}
}//自定义事件类
public class MyEvent extends EventObject{
private MyItem item=null; public MyEvent(MyItem item){
super(item);
this.item=item;
}
}//自定义监听器
public interface MyListener extends EventListener {
public void dataChanged(MyEvent e);
}
//管理器
public class MyItemManager{
private static ArrayList<MyItem> list=new ArrayList<MyItem>; private MyItemManager(){}
public static addMyItem(MyItem item){
list.add(item); //这里如何向MyUI发送MyEvent消息,以通知界面更新
}
}
//界面类
public class MyUI exends JFrame{ //如果可行,这里如何接收MyListener消息
}
记得以前用VC时,只要用SendMessage(UINT msg,LPARAM param)向发送一个消息到消息循环,就可以在任何地方接收并处理它,不知Java中如何处理?
解决方案 »
- 问个正则表达式的菜鸟问题
- 运行两个应用程序如何实现数据同步
- 难道说socket就不能做webim吗?
- 小弟有个问题请教各高手!
- 怎么将Date类型的日期转换成另一种Date类型的日期格式?多多指教
- java 数据报通信如何控制
- 请大家帮忙看看
- 紧急求救---怎样捕捉GUI的快捷键
- 现在是不是翻译技术文档很赠分啊,我不是发了:-)
- 有谁用过Search Maker pro 2.1并知道注册码?或能提供类似的软件.[Search Maker Pro可以自动搜索一个网站,对所有页面进行索引,然后生成
- 在JAVA中如何实现像VB中的多文档窗体(MDI)格式?在线等!!
- 如何在JPanel里通过点击按钮激活文件对话框来打开图片文件
但MyUI要实现Observer,并且要在MyItemManager中定义一个MyUI作为观查器,这样当调用MyItemManager中的Observable对象的notifyObservers()方法时,MyUI得到通知,执行MyUI中的update()方法,更新界面。 先谢了,还有没有更好的方法?
比如说,
aMyItem.addEventListener(new MyListener(){
public void dataChanged(MyEvent e){
//更新界面
}
});
就像GUI的监听一样。但是addEventListener原型具体怎么写不太清楚。
也不是太了解事件监听的内部机制,等高手解答。
PropertyChangeListener
PropertyChangeSupport