如何创建一次框架并随时随地使用它?

时间:2016-05-04 12:15:12

标签: java swing design-patterns singleton frame

在我的程序中,connectionList中有10个连接。对于每个连接,我再次创建我的帧。这意味着我创建了相同的帧10次。我想只创建它一次并使用它10次,而不是为每个连接创建它。我无法设计它。我发送了关于创建框架的部分代码。你能为我做一个例子吗?我应该使用 Singleton Pattern 吗?什么是解决方案,应该如何制作?因为在实际程序中我有25帧这样的。如果你做其中一个我可以做其他24帧。 最诚挚的问候

主要类

var dec = +prompt("Enter a number");

if (dec != null && dec > 0) {
    var hex = dec.toString(16);
    alert(hex);
}
else {
    alert("number must be greater than 0");
}

创建框架类

for (String wn : connectionList) {
            if (!workSpacesNames.contains(wn)) {
                try {
                    DWorkspace workSpace = new DWorkspace(wn, DMainFrame.this);

                    workSpaces.add(workSpace);

                    tabbedPane.addTab(workSpace.getTitle(), workSpace.getHolderPanel());

                    workSpace.getDockingManager().setShowWorkspace(showWorkspaceArea);

                    workSpace.getDockingManager().beginLoadLayoutData();

                    if (UserAuthorization.getUserAuth().isAuthorized(CommandAuthType.CANCELEDORDERS_WINDOW)) {
                        workSpace.getDockingManager().addFrame(DFrameFactory.createClosedOrderTable(
                                workSpace, canceledOrderSound, DockContext.STATE_HIDDEN));
                    }
                    if (UserAuthorization.getUserAuth().isAuthorized(CommandAuthType.CANCELEDSTRATEGIES_WINDOW)) {
                        workSpace.getDockingManager().addFrame(DFrameFactory.createClosedStrategyTable(
                                workSpace, canceledStrategySound, DockContext.STATE_HIDDEN));
                    }
                    }
                    catch (Exception ex) {
                log.trace("exception in DMainFrame", ex);
            }
                    }
                    } 

1 个答案:

答案 0 :(得分:0)

如果用户一次只能查看一个连接属性,则根据上面的代码,可以创建框架的单例实例。但是,如果用户可以同时查看多个连接,则必须创建多个帧。

但帧的创建可以遵循不同的模式

  • 如果仅查看一个框架的单身人士
  • 框架的延迟初始化
  • 创建一个框架池并重复使用它。

再次使用哪种方法将基于用例和UX