代码之家  ›  专栏  ›  技术社区  ›  dan2k3k4

“mvc”并根据从“control”类中选择的jtabedpane控制jmenubar

  •  2
  • dan2k3k4  · 技术社区  · 14 年前

    是的,所以我知道我的代码/结构非常混乱,我以前没有做过MVC,而且我很确定我做的是错的。我希望能够根据所选选项卡“控制”jmenub。

    我有一个主要的GUI类,它只创建一个新的“menubar”和每个新的“panelXXXX”,其中“panelXXXX”可以是“panelDesign”、“panelSource”等。 这些面板作为新选项卡添加到我的jtabbedpane中。 “panelXXXX”全部扩展“panel”,其中包含一些额外/默认值。 “panel”扩展“jpanel”并实现“actionListener”。menubar“扩展”jmenubar。 在“menubar”中-我设置了不同的“jmenuItem”。

    这一切都很好。但是,在我的“容器”类(实现了“ActionListener”)中,我检查了当前所选的选项卡,并决定了我的前进/后退按钮是否环绕等等——也可以工作。

    现在,我一直想知道如何在不创建新对象的情况下控制menubar,我可以将menubar重新编码为IMeplement一个singleton类,这可能有效吗?

    嗯,我想我需要“menubar”来实现“actionListener”?等等,不,那是不对的…

    1 回复  |  直到 14 年前
        1
  •  1
  •   Eugene Ryzhikov    14 年前

    首先,除非需要具有扩展功能的新组件,否则不要对Swing组件进行子类化。

    现在,如何处理菜单:

    1. 创建空的jmenubar。

    2. 编写清除菜单栏的方法,并根据所选选项卡用菜单/操作填充它

    3. Add change listener to your tabbed pane 从而调用前面描述的方法