Java:如何从GUI已经委托给的类中打开弹出窗口?

Java:如何从GUI已经委托给的类中打开弹出窗口?,java,swing,popupwindow,jdialog,delegation,Java,Swing,Popupwindow,Jdialog,Delegation,我的课程中有几门课,但现在我们只需要担心其中两门: 图形用户界面和逻辑 GUI类委托给Logics类: Logics logics = new Logics(); 这是因为我希望GUI类调用Logics类中的方法 但是现在我还希望从Logics类调用GUI中的一个方法。具体地说,我希望Logics能够使GUI类(JDialog)中的一个弹出框在满足某些条件(在Logics类中选中)时可见 我该怎么做呢?我不能将逻辑委托给GUI,因为这样我会得到溢出(来回委托给无限) 有人有什么建议吗?:) -

我的课程中有几门课,但现在我们只需要担心其中两门: 图形用户界面和逻辑

GUI类委托给Logics类:

Logics logics = new Logics();
这是因为我希望GUI类调用Logics类中的方法

但是现在我还希望从Logics类调用GUI中的一个方法。具体地说,我希望Logics能够使GUI类(JDialog)中的一个弹出框在满足某些条件(在Logics类中选中)时可见

我该怎么做呢?我不能将逻辑委托给GUI,因为这样我会得到溢出(来回委托给无限)

有人有什么建议吗?:)


-谢谢

也许可以为Logics类提供显示对话框的服务。GUI类可以实现一个名为DialogService(或其他)的接口,该接口定义了显示对话框的方法。然后你可以打电话:

Logics logics = new Logics(this); 
不需要Logics类直接访问GUI类。

设计两个类:Logics和GUI


然后你需要弄清楚你想让对象通过什么接口与它们交互。物体之间的关系是什么。在上下文中查看对象组合

解决这类问题有很多模式。他们经常利用观察者模式。首先,请阅读关于@Mark IMO的评论,该评论可能是一个答案。@MarkPeters Yeh这是一个非常好的答案,谢谢。如果您将其作为答案发布,则它将是公认的答案;)谢谢