java - 两个不同JFrames之间的java通信?

  显示原文与译文双语对照的内容

也许你听说过关于GIMP或者其他使用不同框架的东西,当我在内存中加载( 可能多) 帧时,我想知道如何做这种帧通信,同时也可以看到。

我已经经过了一些文章,但是他们并不那么满意,如果有人有好的例子或者教程,请。

Alok sharma

时间:

基本上,只是在框架B 中引用框架A,在帧A 中引用帧B:


public class FrameA extends JFrame {


 private FrameB frameB;



 public void setFrameB(FrameB frameB) {


 this.frameB = frameB;


 }



 public void foo() {


//change things in this frame


 frameB.doSomethingBecauseFrameAHasChanged();


 }


}



public class FrameB extends JFrame {


 private FrameA frameA;



 public void setFrameA(FrameA frameA) {


 this.frameA = frameA;


 }



 public void bar() {


//change things in this frame


 frameA.doSomethingBecauseFrameBHasChanged();


 }


}



public class Main {


 public static void main(String[] args) {


 FrameA frameA = new FrameA();


 FrameB frameB = new FrameB();


 frameA.setFrameB(frameB);


 frameB.setFrameA(frameA);


//make both frames visible


 }


}



大多数时候,接口被引入来解耦帧( 听众,等等 ),或者使用中介器来避免所有帧间的太多。

如果将"控件"逻辑与一个MVC类型 Pattern 中的"视图"逻辑分离出来,那么这应该只是引用不同的组件。

就像JFrame可能有多个面板,应用程序可以根据单个面板中的操作对几个面板进行更改。 应用程序可以有多个帧,这些帧可以受单个框架中的动作影响。

...