Tag: 控制器

如何在Java Swing应用程序中管理控制器的视图更新

我发现用Swing编写好的OO代码非常难。 我的问题基本上是我有一个有动作监听器的视图(JPanel)。 动作侦听器确定单击了哪个按钮并调用适当的控制器方法。 问题是此控制器方法需要更新另一个视图。 所以我遇到的问题是我将视图传递给控制器​​。 这是一个例子。 public class MyView extends JPanel implements ActionListener { private final MyController controller = new MyController(); @Override public void actionPerformed(ActionEvent e) { this.controller.updateOtherView(); } } 这基本上就是我想要的,但这就是最终发生的事情。 public class MyView extends JPanel implements ActionListener { private MyController controller = new MyController(); private OtherView otherView; public MyView(MyOtherView otherView) { this.otherView = otherView; […]

JAVA Swing MVC – 主控制器?

我在设计我正在尝试开发的应用程序的架构时遇到了一些麻烦。 我正在研究JAVA,我开始研究这个应用程序,因为我想加深我对JAVA,架构和模式的整体了解。 我想按照指南来制作一个可重用,低耦合的应用程序,就像它应该的那样。 该应用程序只有一个JFrame,但在其中有几个JPanel,每个JPanel代表一个应用程序的模块。 问题是:在JAVA Swing中,如何实现适当的MVC模式? 我在如何理解它应该如何完成的方式上挣扎。 我应该有一个主控制器类,它包含对所有其他控制器的引用吗? (我有一张图片来certificate这一点,在这里: https : //docs.google.com/file/d/0B7tBdn5slIFeY2FoSmxESTREQ1k/edit?usp =sharing ) 在这种情况下,是否所有需要更改正在呈现的模块的事件都会重定向到主控制器? 或者我应该将JFrame与应用程序的控制器耦合,并直接与它们通信? 基本上,我想知道我是否需要一个“管理”所有其他课程。 我已经阅读了几个解释和不同意见,但我相信这有点具体。 希望我已经清楚了(并且希望我的解释比我的绘图更好:))。 编辑:应用程序用法的示例: 应用程序的整个生命周期中的一个(仅一个)JFrame; 菜单将在左侧,如BorderLayout.WEST; 应用程序的当前模块将位于中心,如BorderLayout.CENTER; 当用户按下菜单的一个按钮时,相应的模块被加载到BorderLayout.CENTER; 菜单(View)是否应该拥有自己的Controller,并且此Controller与JFrame通信? JFrame将新模块加载到它的布局中? 或者JFrame应该有自己的控制器(或模型,如Gilbert Le Blanc所说)? 我知道这似乎具体或易于理解,但每当我想到桌面应用程序时,我都很难理解这一点。

两个JavaFx控制器之间的通信

我制作了一个控制器和视图(fxml)的结构,以尽可能多地分离我的代码,我想知道如何在2个控制器之间进行通信。 我的意思是,控制器必须调用另一个控制器的某些function来将其设置为最新。 我认为我当前结构的模式将更加明确: 控制器1 / \ fx:include fx:include / \ Controller2 Controller3 每个控制器都有自己的fxml视图。 – 控制器1:容器控制器,其TabPane元素带有2个选项卡(每个选项卡对应1个控制器) – 控制器2:列表 – 控制器3:表格 您可能已经猜到我希望我的表单(控制器3)自动更新我的列表(控制器2)。 目前,表单只是一个“创建表单”,所以我只想在列表中添加行。 我已经尝试使用FXMLoader获取我的Controller 2并调用函数来重新启动我的tableView,但没有成功。 控制器1(.java + .fxml): package pappu.controllers; import pappu.core.controller.AbstractController; public class FolderController extends AbstractController { } 控制器2(.java + .fxml): package pappu.controllers; import java.net.URL; import java.util.Date; import java.util.List; import java.util.ResourceBundle; import org.hibernate.Session; import javafx.beans.property.SimpleStringProperty; import […]

如何在JavaFX中使用来自另一个Controller的变量

我有两个场景Login.fxml和MainView.fxml以及两个不同的控制器LoginController.java和MainViewControler.java 在LoginController中,我执行整个登录过程并获取JSessionID的值并将其存储在对象中,如下所示: loginGateway = loginGateway(gateway); 现在在MainViewController中我需要使用this对象(loginGateway)来获取getJSessionID并向服务器发出其他请求。 但是如何在另一个Controller类(MainViewController.java)中访问此对象?

如何使用不同的fxml文件创建多个javafx控制器?

我一直在看一些博客和其他stackoverflow问题,我没有看到我的问题的直接答案。 我正在创建一个javafx gui客户端,我希望我的菜单栏在一个fxml中是一个控制器,然后我希望内容区域是额外的fxml文件。 登录屏幕将是一个fxml,登录屏幕将是应用程序的主要内容,并将在一个fxml中。 我该怎么做呢? 我只是不想在我的登录,菜单栏和主要内容的同一个文件中拥有我的所有代码。 这是我正在做的工作的图像: