當您添加兩張具有相同標識符的卡時,cardlayout的默認行爲是什麼。例如,如果已添加panel1
。後來在程序中,我添加了panel2
以及相同的字符串標識符。缺省行爲是用卡片堆棧中的panel2
代替panel1
? 謝謝擺動CardLayout
0
A
回答
2
你可以添加多個具有相同標識符的卡片。您可以[編輯] 只有
仍然
導航到
都
。 show(Container, String)
顯示面板添加[編輯]
第一
最後 [/編輯]。
卡斯帕
+0
感謝您的幫助 – user1406416
4
下面是CardLayout's
實施addLayoutComponent()
其通過addLayoutComponent(Component comp, Object constraints)
執行。
public void addLayoutComponent(String name, Component comp) {
synchronized (comp.getTreeLock()) {
if (!vector.isEmpty()) {
comp.setVisible(false);
}
for (int i=0; i < vector.size(); i++) {
if (((Card)vector.get(i)).name.equals(name)) {
((Card)vector.get(i)).comp = comp;
return;
}
}
vector.add(new Card(name, comp));
}
}
CardLayout
保持Card
對象(見下文)的向量。看起來像是當檢測到名稱衝突時,Card
中的Component
具有相同的名稱將替換爲新的Component
被添加。因此,帶有特定名稱的show()
將顯示已添加該名稱的組件最後組件。
class Card implements Serializable {
static final long serialVersionUID = 6640330810709497518L;
public String name;
public Component comp;
public Card(String cardName, Component cardComponent) {
name = cardName;
comp = cardComponent;
}
}
相關問題
- 1. CardLayout(擺動)與按鈕上的動作偵聽器?
- 2. CardLayout中的可滾動JPanel?
- 3. silverlight中擺擺動動畫
- 4. CardLayout + Concurrency
- 5. 從CardLayout
- 6. 擺動
- 7. 擺動動畫
- 8. 擺動擺不起作用
- 9. Cardlayout和對象?
- 10. CardLayout IllegalArgumentException與next()
- 11. CardLayout問題
- 12. CardLayout的問題
- 13. Cardlayout addLayoutComponent()API
- 14. CardLayout焦點java
- 15. 向前擺動和向後擺動jQuery
- 16. 擺動顯示錯誤與擺動
- 17. 多個showMessageDialogs可以擺動擺動嗎?
- 18. 動態更新CardLayout不起作用
- 19. 擺動的UncaughtExceptionHandler
- 20. 擺動鼠標
- 21. 請在擺動
- 22. 拖放擺動
- 23. 與Swing CardLayout問題
- 24. CardLayout交換面板
- 25. 的Java CardLayout事件
- 26. 使用CardLayout和FormPanels
- 27. Java cardlayout dosen't show textarea
- 28. JPanel on CardLayout Swing Java
- 29. 從CardLayout刪除JComponent
- 30. 如何使鐘擺沿圓周擺動
親自試一試,你會看到:) ...我認爲你可以在文檔http://docs.oracle.com/javase/tutorial/uiswing/layout/card中找到它。 html – user219882