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]);
}
}
添加回答
举报