3 回答

TA貢獻1868條經驗 獲得超4個贊
如果您查看 的文檔Container
,您會發現它有一個remove()
方法。既然JPanel
extendsContainer
也有這個方法。您應該熟悉這些 API 文檔才能找到此類信息。

TA貢獻1784條經驗 獲得超7個贊
不幸的是,它CardLayout
不會告訴您當前正在顯示哪張卡(JPanel)。
查看Card Layout Focus中的一個擴展類CardLayout
以提供此功能。
您將使用該getCurrentCard()
方法訪問當前正在顯示的面板。
然后,一旦獲得當前正在顯示的卡片,您就可以使用該類的remove(...)
方法將其從父面板中刪除Container
。
您只需按如下方式使用該類:
//final?CardLayout?cardLayout?=?new?CardLayout(); final?RXCardLayout?cardLayout?=?new?RXCardLayout();
“刪除”按鈕的邏輯是:
cardPanel.remove(cardLayout.getCurrentCard());

TA貢獻1890條經驗 獲得超9個贊
當您說索引(5 個面板中的第 3 個面板)時,您指的是插入組件時的名稱(字符串),對吧?我不知道有什么優雅的方法可以做到這一點,但是您可以嘗試獲取此容器(parentComponent)中的所有組件,并嘗試找到與您的索引同名的組件。例如:
Component[] components = parentComponent.getComponents();
for(int i = 0; i < components.length; i++) {
if(components[i].getName().equals(index)) {
cardLayout.removeLayoutComponent(components[i]);
}
}
添加回答
舉報