2012-09-10 74 views
4

我已经开始使用NetBeans开发Java桌面应用程序。我有7个不同的屏幕,并代表他们我使用JPanel。一个JPanel代表它们中的每一个,一个包含所有它们(命名为mainPanel),它们位于JFrame中。 mainPanel使用Cardlayout用于在屏幕之间切换(JPanels)。我使用netbeans ui小部件构建了所有这个接口,即拖放。使用Cardlayout切换到特定的JPanel

的LayOut

JFrame 
    mainPanel (Jpanel) CardLayout 
     Child1 (JPanel) 
     Child2 (JPanel) 
     . 
     . 
     . 
     . 
     Childn (Jpanel) 

我知道,一个可以用JPanel.next()Jpanel.previous切换画面。但它们只能在连续屏幕之间切换时使用,即如果您必须切换到直接邻居。还有一个方法JPanel.show()去特定的屏幕,但问题是它需要一个参数name这是你使用JPanel.add()函数将它添加到mainPanel时关联的String。我已经使用拖放功能添加了所有内容,所以我不知道String如何得到关联。 虽然它看起来很原始,我已经做到了,没有Cardlayout,但这一次,Cardlayout是一个要求。

帮助将高度赞赏

回答

5

嗯...我得到了答案。 问题是,当你通过接口添加一些东西时,它的代码是自动生成的,默认情况下是隐藏的。所以,我必须查看关联字符串的自动生成的代码。默认情况下它是card1,card2,card3等。

垃圾回答的例子正是我想要的,但不是我想要的方式。它已经手动关联了自定义Jpanel中的字符串。但它让我想到了自动生成的代码。所以,非常感谢你:)

现在我需要做的是像

mainPanel.show (gameHome, "Card3"); 
6

example使用JComboBox改证。该示例扩展了JPanel以添加名称,但Component具有getName()setName()方法作为替代方法。另见相关的answer

image

相关问题