如何替换Jtabbedpane中的现有选项卡

时间:2013-12-06 10:00:41

标签: java swing jtabbedpane

我有一个带有5个标签的JTabbedPane。我在每个标签上添加了一个JPanel,例如5个JPanel,每个标签上都有几个组件。如果我想根据标志变量动态更新标签内容,请更换标签4上的内容,我需要用新的Jpanel替换现有面板,如何在特定标签上实现此动态更新?

2 个答案:

答案 0 :(得分:2)

实现这一目标的可能性更大。

第一种可能性是替换窗格的内容。假设您已添加要更新的窗格,如下所示:

 this.content = new JPanel();
 this.content.add(new JLabel("Content1"));
 myPane.addTab("Tab1", this.content);

然后您可以更改选项卡的内容:

 this.content.removeAll();
 this.content.add(new JLabel("Content2"));
 this.content.revalidate();
 this.content.repaint();

第二种可能性是完全删除标签,然后添加一个新内容。

 myPane.removeTabAt(index);
 myPane.addTab("New Tab", newContent);

一般来说,我更喜欢第一种可能性。

答案 1 :(得分:1)

在我能分辨出JTabbedPane的getComponentAt和getTabComponentAt方法之前的一天,我打了这个愚蠢的问题。仅供参考,第一个获取选项卡的内容,后者选项卡的标题栏组件 - .- 我使用过这样的东西:

//create new content for tab
JPanel tabPanel = generateTab();
//assign new content to tab
tabbedPane.setComponentAt(index, tabPanel);