Java 我应该如何使用MouseMovementListeners链接两个项目?

Java 我应该如何使用MouseMovementListeners链接两个项目?,java,swing,awt,mouseevent,mousemove,Java,Swing,Awt,Mouseevent,Mousemove,我正在开发一个程序,该程序将显示同一组项目的两个“视图”。因此,我需要进行一些设置,以便在更改自顶向下视图时,侧视图也会更新(反之亦然) 以下是相关代码的简要概述,您可以了解到目前为止我的结构: public class DraggableComponent extends JComponent { //Contains code for MouseMovementListener that makes the item draggable } public class ItemGra

我正在开发一个程序,该程序将显示同一组项目的两个“视图”。因此,我需要进行一些设置,以便在更改自顶向下视图时,侧视图也会更新(反之亦然)

以下是相关代码的简要概述,您可以了解到目前为止我的结构:

public class DraggableComponent extends JComponent
{
    //Contains code for MouseMovementListener that makes the item draggable
}

public class ItemGraphic extends DraggableComponent
{
    //Code to render the graphic
}

public class Item
{
    private ItemGraphic topGraphic;
    private ItemGraphic sideGraphic;
}
我可以让每个图形在GUI中显示良好。我还可以独立拖动每个图形。我错过了“链接” 我一直在思考的一些想法:

  • 为整个GUI提供一个侦听器。循环检查每个项目,如果 光标位于任一图形的边界内,请移动另一个图形 图解的我担心这种方法的效率
  • 多个“配对”侦听器(不太确定这将如何 工作,但想法是每个图形都有一个侦听器,用于另一对图形)

您需要一个由两个“视图”共享的“模型”,模型上的侦听器更新视图。这样,如果更改视图,控件将更改模型,该模型将更新两个视图。这不过是MVC(模型-视图-控制)程序设计的又一次迭代。

您需要一个由两个“视图”共享的“模型”,模型上的侦听器更新视图。这样,如果更改视图,控件将更改模型,该模型将更新两个视图。这不过是MVC(模型-视图-控制)程序设计的又一次迭代。

我建议您需要某种中间模型,这两个组件可以共享和监视

其思想是,当您在视图上更新/更改时,它会使用所需的值更新模型。通过监听器接口通知所有其他相关方更改并相应地更新他们自己


我们使用类似的技术链接两个滚动窗格

我建议您需要某种中间模型,这两个组件可以共享和监视

其思想是,当您在视图上更新/更改时,它会使用所需的值更新模型。通过监听器接口通知所有其他相关方更改并相应地更新他们自己

我们使用类似的技术链接两个滚动窗格