我想动态地替换/更改面板的内容。我知道这样做的“标准”方式是使用CardLayout。CardLayout的替代品不包含对所含组件的引用
但是,大多数组件都很胖。他们是大数据表和巨大的图表。
我还有什么其他选择(包括第三方组件免费提供)?
我想动态地替换/更改面板的内容。我知道这样做的“标准”方式是使用CardLayout。CardLayout的替代品不包含对所含组件的引用
但是,大多数组件都很胖。他们是大数据表和巨大的图表。
我还有什么其他选择(包括第三方组件免费提供)?
您可以删除旧内容并创建新的并读取新组件。然后致电
container.revalidate();
container.repaint();
只是不要使用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);
由于使用的组件非常肥(高内存消耗,需要较长的初始化时间等) – Marcel
@marc M PLUS把'大数据表和巨大diagrams'到'JScrollPane' +1 – mKorbel
有一个相关的例子[这里](http://stackoverflow.com/questions/7059278 /更改面板尺寸上按钮点击/ 7061696#7061696)。 – trashgod