自己的按钮标签容器:如何初始化所有按钮做同样的事情?

Own Tabs Container of Buttons: how to initialize all of them doing the same?

我刚刚创建了自己的 Container,它的结构是这样的:

Container
|- TabsContainer
   |-Button1
   |-Button2
   |-Button3
   ...

应该是这样的:

并定位在屏幕底部,像这样:

在我创建的每个表单中。

当我将此自定义容器添加到我的 4 个表单时,我仍然希望所有按钮都执行完全相同的操作。我怎么能这样做?在什么功能中? before

我已经尝试 onPostShow() 我的登录屏幕,方法是让它们都具有其独特的组件根并添加一个 actionListener,但它没有用。

此外,选项卡没有 "blank containers" 但仍然描绘了按钮,但它们不应该。看这里:

我该如何解决这两个问题?

要使其在全球范围内运行,您需要将 actionListener 直接添加到按钮。

创建容器并添加按钮后,依次右键单击它们和select 事件 -> 动作事件。这将生成 onComponentAction 方法,您可以在其中为该按钮编写代码。

你应该得到类似这样的东西:

@Override
protected void onContainer_Button1Action(Component c, ActionEvent event) {
    //Write all you want this button to do here
}

我确定您正在努力避免代码重复,正如您在 中提到的那样。使用通用容器比以前的方法更安全,更不容易出错。

Codename One 还支持旧 GUI 构建器中的 EmbeddedContainer 功能。因此,您可以为 6 个选项卡创建一个 Container 实例(在添加新 GUI 元素菜单中选择 "Container")并将它们作为 EmbeddedContainer UI。请注意,新的 GUI 构建器不支持此功能,它基于更传统的 GUI 构建器方法,它可能会使应用程序中的导航行为有些 "odd".

new GUI builder 中,您可以编写通用代码来映射到此,因为表单将直接映射到单个 class。