您好,也许您听说过GIMP或使用不同帧的类似内容作为完整的gui,所以我想知道当两个(也许多个)帧都加载到内存中并且可见时如何进行此类帧通信。
我浏览了一些文章,但它们并不令人满意,如果有人有一个很好的例子或教程,请分享。
问候
阿罗克·沙玛
最佳答案
基本上,只需要在帧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
}
}
大多数时候,引入接口来解耦框架(侦听器等),或者使用调解器来避免所有框架之间的过多链接,但是您应该明白这一点。