【问题标题】:Remove component that was added in JPanel移除在 JPanel 中添加的组件
【发布时间】:2013-03-02 13:01:05
【问题描述】:

我有具有此 JPanel 的卡片布局:

卡片布局:

  1. 面板条目
  2. 面板记录

在 panelRecord 中,我添加了分量视频捕获。 这段代码是添加了视频采集组件:

panelRecord.add(BorderLayout.CENTER, graph.asComponent());

graph.asComponent() 是来自 DSJ (Direct Show JavaWrapper) 的组件,我现在不知道这个组件的类型。

当我回到 panelEntry 布局时(因为我使用卡片布局),panelEntry 中的所有功能都很慢。我想,因为它仍然有 panelRecord 视频捕获活动。 我想早先删除 panelRecord 中的组件。怎么样?

请帮忙,谢谢:)

【问题讨论】:

  • 你试过CardLayout#removeLayoutComponent()吗?请编辑您的问题以包含一个 sscce 来展示您所描述的问题。

标签: java swing components cardlayout removeall


【解决方案1】:

容器有移除组件的方法

public void remove(Component comp)

从此容器中移除指定的组件。该方法还通过removeLayoutComponent 方法通知布局管理器从该容器的布局中移除组件。

为要移除的组件创建一个变量

compToRemove = graph.asComponent()

添加它

panelRecord.add(BorderLayout.CENTER, graph.asComponent());

喜欢就删掉

panelRecord.remove(compToRemove);

每一步都需要更新图形

【讨论】:

  • I think, because it was still have panelRecord video capture active。然后在切换面板时停止视频捕获。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
相关资源
最近更新 更多