如何使用Netlaans GUI Builder的CardLayout

前言 (这是一篇自我回复的文章)

我已经使用Netbeans GUI Builder弄湿了自己的脚,但是我只是没有开始深入了解更多复杂的细节。 我甚至不知道从devise视图中更改布局pipe理器,我只是手工编写代码。 所以我试着询问Google服务台,询问“如何在Netbeans GUI Builder中使用不同的布局pipe理器”,并在结果的前几页中发现了Zilch。 在Eclipse Window Builder中,从调色板中拖放不同的布局pipe理器,为什么不在GUI Builder中。 你看,经过几个小时的search,我从容器组件的上下文菜单中find了神奇的“ 集合布局 ”。 现在我准备好统治世界了!

我想我会在一些教程中介绍如何使用GUI Builder中不同的布局pipe理器,在这里,所以其他人不会秃顶,试图弄清楚我为自己弄清了什么。 完成CardLayout (下面)的第一个教程之后,我准备发布我的努力,并inputAsk Question页面的标题, “如何使用Netlaans GUI Builder的CardLayout”什么… !! 。 已经有一些关于这个话题的问题!! 我想我应该让我的Google查询更精确。 DOHH!

无论如何,现在我已经有了这个教程,比其他答案中提供的更多,所以我的努力​​不会被浪费(所以我告诉自己:D)。 也许我会做一系列的这些馅饼。 我们拭目以待。 现在,享受如何使用CardLayout :P

如何使用CardLayout

  1. 使用新的JFrame表单,将JPanel和几个JButtons到表单中,看起来像这样

    在这里输入图像描述

    您的导航窗格应该如下所示。 注意我更改了variables名称。 您可以通过右键单击导航器中的组件并select更改variables名称来完成此操作

    在这里输入图像描述

  2. 现在我们将mainPanel的布局设置为CardLayout 。 双击导航器中的mainPanel ,以便在devise视图中自行显示。 然后在导航器中右键单击它并select设置布局 – > CardLayout 。 你的导航器现在应该看起来像这样

    在这里输入图像描述

  3. 现在我们要添加不同的JPanelsmainPanel 。 只需右键单击导航器中的mainPanel ,然后select从Palette – > Swing Containers – > JPanel添加 。 这样做三次,所以你有三个不同的JPanels 。 我也改变了他们的variables名称。 你的导航器不应该是这样的。

    在这里输入图像描述

  4. 布局部分设置,但让我们添加一些标签,所以我们可以区分JPanels ,也改变他们的名片 。 所以从导航器中双击panelOne 。 您将在devise视图中看到面板。 只需将一个JLabel拖放到它,然后将标签的文本编辑到Panel One 。 为另外两个做这个,相应地命名他们的标签。 当你完成后,你的导航器应该是这样的。

    在这里输入图像描述

    我们也想改变作为CardLayout引用给出的面板的名字。 我们可以通过双击其中一个面板( panelOne )并转到属性窗格来实现。 在底部,你会看到一个属性Card Name 。 只要把它改成你想要的,我用了panelOne 。 为另外两个JPanel做这个

    在这里输入图像描述

    注意:在任何时候,你可以改变布局的位置,比如你想要panelTwo最初显示,而不是panelOne 。 只需右键单击mainPanel并select更改顺序 。 您可以在订单上向上或向下移动面板。

  5. 我们差不多完成了。 我们只需要将侦听器添加到button来在CardLayout面板之间切换。 所以双击导航器的框架。 你现在应该看到button。 右键单击Panel Onebutton。 并selectEvents -> Action -> actionPerformed 。 您应该在源代码视图中看到自动生成的代码。 添加这段代码

     private void jbtPanelOneActionPerformed(ActionEvent evt) { CardLayout card = (CardLayout)mainPanel.getLayout(); card.show(mainPanel, "panelOne"); } 

    对另外两个button执行此操作,确保将相应面板的正确名称传递给show方法。

如果你已经按照上面的5个步骤操作,你的程序应该运行如下。

在这里输入图像描述


如果你有其他人想使用,也可以把其他的JPanel窗体类拖放到你的mainPanel上。 这可能是一个更大的非平凡的情况下,避免humungous类的首选方法。

在这里输入图像描述