操作Observer情势实现组件间通信[Java编程]
本文“操作Observer情势实现组件间通信[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1.问题的提出
从前做一个界面的时刻常常会碰到这样的尴尬情形:但愿保存各个独立的组件(类),但又但愿它们之间可以彼此通信.比方Windows中的Explorer,我们但愿鼠标点击左边是树型目录的一个节点,右边的文件浏览能及时列出该节点目录下的文件和子目录,近似这样一个简单的利用,假如只有一个类担当JFrame,而树型组件和浏览文件的面板作为成员,就像:
public class MainFrame extends JFrame
{
JPanel treePanel;
JTree tree;
JPanel filePanel;
...
}
这样当然简单在二者之间传送消息,但是可扩大性较差.普通简单想到的是两种办法:在一个组件里保存另一个组件范例的成员,初始化时作为参数传入引用,比方:
class TreePanel extends JPanel
{
JTree tree;
...
}
class FilePanel extends JPanel
{
public FilePanel(JTree tree){...}
...
}
大概将一个组件线程化,不断地监听另一个组件的改变,然后作出呼应的反映,比方:
class TreePanel extends JPanel
{
JTree tree;
...
}
class FilePanel extends JPanel implements Runnable
{
public void run()
{
while (true)
{
//监听tree的改变
}
...
}
...
}
这样确切可以到达我们的目的,但是第一种筹划明显不利于疏松耦合,第二种筹划对比占用系统资源.通过学习计划情势,我们发现可以用Observer情势来办理这个问题.
以上是“操作Observer情势实现组件间通信[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |