如何使用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
-
使用新的
JFrame
表单,将JPanel
和几个JButtons
到表单中,看起来像这样您的导航窗格应该如下所示。 注意我更改了variables名称。 您可以通过右键单击导航器中的组件并select更改variables名称来完成此操作 。
-
现在我们将
mainPanel
的布局设置为CardLayout
。 双击导航器中的mainPanel
,以便在devise视图中自行显示。 然后在导航器中右键单击它并select设置布局 – > CardLayout 。 你的导航器现在应该看起来像这样 -
现在我们要添加不同的
JPanels
到mainPanel
。 只需右键单击导航器中的mainPanel
,然后select从Palette – > Swing Containers – > JPanel添加 。 这样做三次,所以你有三个不同的JPanels
。 我也改变了他们的variables名称。 你的导航器不应该是这样的。 -
布局部分设置,但让我们添加一些标签,所以我们可以区分
JPanels
,也改变他们的名片 。 所以从导航器中双击panelOne
。 您将在devise视图中看到面板。 只需将一个JLabel
拖放到它,然后将标签的文本编辑到Panel One
。 为另外两个做这个,相应地命名他们的标签。 当你完成后,你的导航器应该是这样的。我们也想改变作为
CardLayout
引用给出的面板的名字。 我们可以通过双击其中一个面板(panelOne
)并转到属性窗格来实现。 在底部,你会看到一个属性Card Name
。 只要把它改成你想要的,我用了panelOne
。 为另外两个JPanel
做这个注意:在任何时候,你可以改变布局的位置,比如你想要
panelTwo
最初显示,而不是panelOne
。 只需右键单击mainPanel
并select更改顺序 。 您可以在订单上向上或向下移动面板。 -
我们差不多完成了。 我们只需要将侦听器添加到button来在
CardLayout
面板之间切换。 所以双击导航器的框架。 你现在应该看到button。 右键单击Panel One
button。 并selectEvents -> Action -> actionPerformed
。 您应该在源代码视图中看到自动生成的代码。 添加这段代码private void jbtPanelOneActionPerformed(ActionEvent evt) { CardLayout card = (CardLayout)mainPanel.getLayout(); card.show(mainPanel, "panelOne"); }
对另外两个button执行此操作,确保将相应面板的正确名称传递给
show
方法。
如果你已经按照上面的5个步骤操作,你的程序应该运行如下。
如果你有其他人想使用,也可以把其他的JPanel窗体类拖放到你的mainPanel
上。 这可能是一个更大的非平凡的情况下,避免humungous类的首选方法。