4

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

布局

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

我知道可以使用JPanel.next()和切换屏幕Jpanel.previous。但它们只能在连续屏幕之间进行切换时使用,即如果您必须切换到直接邻居。还有一种方法JPanel.show()可以转到特定屏幕,但问题是它需要一个参数,当您使用函数将其添加到 mainPanel 时,该参数name是您关联的。我已经使用拖放添加了所有内容,所以我不知道关联的是什么,如果有的话。虽然它看起来很原始,而且我已经完成了,但这次,Cardlayout 是一个要求。StringJPanel.add()StringCardlayout

帮助将不胜感激

4

3 回答 3

6

使用 aJComboBox来换卡。该示例扩展JPanel为添加名称,但Component具有getName()setName()方法作为替代。另请参阅此相关答案

图片

于 2012-09-10T11:38:42.137 回答
5

嗯...我得到了答案。问题是,当你通过界面添加一些东西时,它的代码是自动生成的,默认情况下是隐藏的。因此,我不得不查看关联字符串的自动生成代码。默认为card1、card2、card3等。

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

现在我需要做的是

 mainPanel.show (gameHome, "Card3");
于 2012-09-10T11:56:08.960 回答
3

作为替代方案,使用ViewSwitcher

它更适合您在这里尝试做的事情。

于 2012-09-10T13:08:23.827 回答