2012-09-10 69 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