如何在Netbeans GUI Builder中使用CardLayout

时间:2014-02-20 04:52:57

标签: java swing netbeans layout-manager cardlayout

前言(这是一个自我回答的帖子)

我已经厌倦了Netbeans GUI Builder,但我还没有开始深入了解它以了解更复杂的细节。我真的甚至不知道从设计视图更改布局管理器,我只是手工编写它。因此,我尝试通过询问“如何在Netbeans GUI Builder中使用不同的布局管理器”来询问Google帮助台,并且在结果的前几页中惊奇地发现了zilch。在Eclipse Window Builder中,您可以从调色板中拖放不同的布局管理器,为什么不在GUI Builder中。瞧,经过几个小时的搜索,我从容器组件的上下文菜单中找到了神奇的设置布局。现在我准备好统治世界了!

我想我会介绍一些关于如何使用GUI Builder中不同布局管理器的教程,这里也是如此,所以其他人不会秃头撕裂他们的头发试图弄清楚我自己一直在想什么。完成CardLayout(下面)的第一个教程后,我准备发布我的努力并输入提问题页面的标题,“如何使用Netbeans使用CardLayout GUI Builder“什么...... !! 。关于这个话题已经有一些问题!!我想我应该让我的Google查询更精确。 DOHH!

无论如何,我现在有了这个教程,它比其他答案中提供的信息更有用,所以我的努力​​不会浪费(所以我告诉自己:D)。也许我会制作一系列这些东西。走着瞧。现在,享受如何使用CardLayout :P

1 个答案:

答案 0 :(得分:61)

如何使用CardLayout

  1. 使用新的JFrame表单,在表单中添加JPanel,一些JButtons,使其看起来像这样

    enter image description here

    导航器窗格应如下所示。注意我更改了变量名称。您可以通过右键单击导航器中的组件并选择更改变量名称来实现此目的。

    enter image description here

  2. 现在我们将mainPanel的布局设为CardLayout。双击导航器中的mainPanel,使其在设计视图中自行显示。然后在导航器中右键单击它并选择设置布局 - > CardLayout 即可。您的导航器现在应该如下所示

    enter image description here

  3. 现在我们要向JPanels添加不同的mainPanel。只需右键单击导航器中的mainPanel,然后选择从调色板添加 - >摇摆容器 - >的JPanel 即可。这样做三次,因此你有三个不同的JPanels。我也改变了他们的变量名。你的导航器不应该是这样的。

    enter image description here

  4. 布局部分已设置,但我们可以添加一些标签,以便我们区分JPanels并更改其卡名称。所以双击导航器中的panelOne。您将在设计视图中看到该面板。只需将JLabel拖放到该帐户,然后将标签文字编辑为Panel One即可。对其他两个也这样做,相应地命名他们的标签。完成后,导航器应如下所示。

    enter image description here

    我们还想更改以CardLayout引用的形式给出的面板名称。我们可以通过双击其中一个面板(panelOne)并转到属性窗格来实现。在底部,您将看到属性Card Name。只需将其更改为您想要的任何内容,我使用panelOne。为其他两个JPanel

    执行此操作

    enter image description here

    注意:您可以随时更改布局位置,例如您希望panelTwo最初显示,而不是panelOne。只需右键点击mainPanel,然后选择更改订单即可。您可以在订单上向上或向下移动面板。

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

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

    对其他两个按钮执行此操作,确保将相应面板的正确名称传递给show方法。

  6. 如果您已按照上述5个步骤操作,则程序应如下运行。

    enter image description here


    如果您还想使用其他类,也可以将其他类JPanel表单类拖放到mainPanel上。对于更大的非平凡案例,这可能是一种优选的方法,以避免大量的类别。

    enter image description here