【问题标题】:How to use CardLayout with Netbeans GUI Builder如何将 CardLayout 与 Netbeans GUI Builder 一起使用
【发布时间】:2014-03-20 20:12:55
【问题描述】:

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

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

我想我在 SO 上提供了一些关于如何使用 GUI Builder 中不同布局管理器的教程,这样其他人就不会秃顶,试图弄清楚我一直在为自己弄清楚的东西.在完成CardLayout(下)的第一个教程后,我准备发布我的努力并在 页面的标题中输入,“如何将 CardLayout 与 Netbeans GUI Builder 一起使用” 。 什么...!!。已经有人问过这个话题了!!我想我应该让我的谷歌查询更精确。嗬嗬!

无论如何,我现在有这个教程,它仍然比其他答案中提供的内容更丰富,所以我的努力​​不会白费(所以我告诉自己:D)。也许我会做一系列这样的 tuts。走着瞧。现在,享受如何使用 CardLayout:P

【问题讨论】:

  • 我认为应该交换重复标志 - 另一个问题的已接受答案只是指向场外教程的链接(无论如何,这不是 SO 可接受的答案)。

标签: java swing netbeans layout-manager cardlayout


【解决方案1】:

如何使用卡片布局

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



    您的导航器窗格应如下所示。请注意,我更改了变量名称。您可以通过右键单击导航器中的组件并选择更改变量名称来做到这一点。

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

  3. 现在我们要向mainPanel 添加不同的JPanels。只需右键单击导航器中的mainPanel 并选择Add from Palette -> Swing Containers -> JPanel。这样做三遍,这样你就有了三个不同的JPanels。我还更改了它们的变量名。您的导航器不应该是这样的。

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



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



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

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

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

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

如果您已按照上述 5 个步骤操作,您的程序应按以下方式运行。


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

【讨论】:

  • @peeskillet 如果框架外有其他单独的面板,您将如何处理这些事件?例如,返回主面板。
  • 不错,虽然我猜它与选项卡式窗格相同。我对netbeans gui builder感兴趣的东西就像在JPanels上来回切换,上面有按钮。如果您有任何关于的commnet。
猜你喜欢
  • 2012-07-26
  • 2012-11-02
  • 2017-08-13
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
相关资源
最近更新 更多