繁体   English   中英

将应用程序链接到Swing GUI的最佳方法是什么?

[英]What is the best way to link your application to Swing GUI?

如果我具有Swing GUI类和应用程序,应如何管理这些对象之间的通信? 我应该将GUI对象链接传递给应用程序还是将应用程序链接传递给GUI?

例:

public class App{

public App()
{
   GUI gui = new GUI(this)
}

}

要么

public GUI{
public GUI()
{
   App gui = new App(this)
}
}

看一下MVC模式 理想情况下,您希望展示您的应用程序,以便不同的GUI组件可以使用它(稍后提供您的应用程序的Web / Servlet视图或命令行界面)。 该要求禁止您的应用程序具有隐式的Swing知识。

当前的答案都很好,但是这里有一个非常关键的事情:您具有“多线程”标记,但是还没有人解决。 您绝对希望将MVC中的“ C”考虑为可穿线的东西,甚至可能希望通过Manager界面甚至​​是View界面遵循Manager设计模式-接口的使用将有助于扩大您的选择范围,甚至更多用于将来的重构甚至重新设计。 过去,我曾使用java.util.observer和java.util.observable(Java中最早的MVC模式:)来解决通信问题。 只要记住不要阻塞您的主线程,否则您的GUI将冻结。 是的,MVC是一个不错的开始,但是在App-> GUI中,您描述的不仅仅是MVC,将整个GUI视为应用程序的视图,模型很可能是某种数据集(DataBase,flatfile ,状态信息)和控制器您的应用。 请记住,GUI至少将有一个接口。

是的,MVC模式会有所帮助。 您确实要删除两个组件之间的紧密耦合。 或者至少要与后者一起使用,意思是:

public GUI {
    public GUI() {
         App gui = new App(this)
    }
}

这样,您的应用程序逻辑就不会依赖或绑定到GUI。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM