CardLayout的替代方法,它不包含对包含组件的引用

时间:2011-08-26 06:34:24

标签: java swing user-interface cardlayout

我想动态更换/更改面板的内容。我知道这样做的“标准”方法是使用CardLayout。

然而,大多数成分都很胖。它们是大数据表和巨大的图表。

我还有哪些其他选项(包括免费提供的第三方组件)?

2 个答案:

答案 0 :(得分:2)

您可以删除旧内容并创建新内容并读取新内容。然后拨打

container.revalidate(); 
container.repaint();

答案 1 :(得分:1)

只是不要使用LayoutManager。自己烤一下:

// start with fat compponent 1
JPanel p = new JPanel(new BorderLayout());
FatComponent1 c1 = new FatComponent1();
p.add(c1, BorderLayout.CENTER);

// ...
// replace it e.g. after pressing a button with fat component 2
p.removeAll();
FatComponent2 c2 = new FatComponent2();
p.add(c2, BorderLayout.CENTER);