2012-11-14 47 views
1

以下是我嘗試的:CardLayout - 如何使用NetBeans GUI Builder的previous()和next()?

將一些JPanel拖到JFrame上(使用NetBeans檢查器窗口)。

在JFrame構造函數中,使用.setVisible(false)使所有JPanel不可見,除了我想先顯示的那個。

它的工作原理和我可以輕鬆地從一個到另一個通過使用actionPerformed一些按鈕,並將.setVisible(false)添加到當前卡和.setVisible(true)到我想看到的。

我現在想要做的是使用CardLayout previous()next(),類似於瀏覽器的後退/前進。我也希望從不同的地方到達一個面板,即兩個面板可以鏈接到同一個面板,所以以前的面板不總是相同的。

我試着在裏面的actionPerformed JFrame類使用下面的代碼:

CardLayout cardLayout = (CardLayout) this.getLayout(); 
cardLayout.previous(this); 

但是,這是行不通的。我錯過了什麼?這是應該做我在找什麼?

+0

您可以發佈SSCCE嗎? –

+0

另請參閱此完整的[示例](http://stackoverflow.com/a/5655843/230513)。 – trashgod

回答

1

在您的JPanel聲明一個變量String previousCard。當您從CardA轉到CardB時,將previousCard變量設置爲「CardA」或任何卡的名稱。因此,在設置了從一張卡到另一張卡的所有轉換之後,後退按鈕將始終執行相同的操作。

cardLayouot.show(getContentPane(), previousCard); 
3

當你有你的JFrame的佈局設置爲CardLayout,您需要使用它的next() & previous()方法時要使用的父容器。對於JFrame父容器是內容窗格。所以改變:

cardLayout.previous(this); 

cardLayout.previous(getContentPane()); 
相關問題